Code Bye

关于c++路径问题

TCHAR begin[20]=_T("E:\Debug\Image1\");

这是绝对路径,写死了,不过在别的机器上由于E盘没有这个文件,所以本人需要写相对路径,本人把这个image1复制到本人打包的目录下,那这里应该怎么写呢?

解决方案

20

那就直接写  “.\”  就可以了

10

TCHAR begin[20]=_T("Image1\");

10

引用:


就例如本人解压在D盘里面,然后本人读取Debug文件夹下的image1文件夹

用API GetCurrentDirectory来获取当前路径,然后拼接字符串即可获得绝对路径。
下面的代码供参考:

CImage image;
    DWORD dwSize = ::GetCurrentDirectory(0, NULL);
    if(dwSize > 0)
    {
        TCHAR* tszDir = new TCHAR[dwSize * sizeof(TCHAR)];
        ::ZeroMemory(tszDir,dwSize * sizeof(TCHAR));
        if(tszDir != NULL)
        {
            ::GetCurrentDirectory(dwSize, tszDir);
            CString csDir = tszDir;
            delete[] tszDir;
            if(csDir.Right(1) != "\")
            {
                csDir += "\";
            }
            CString imageFile = csDir + "Image\Test.bmp";
            image.Load(imageFile);
            m_hBmp = image.Detach();
            m_stat1.SetBitmap(m_hBmp);
        }
    }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于c++路径问题