代码如下
CString szCurPath;
CString szIniFile;GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
szIniFile= szCurPath + CString("\\file.ini");szCurPath变量上确实已经被赋了值(等于当前工作目录的路径),但是和CString("\\file.ini")相加想赋给szIniFile的时候却怎么也赋不了,szIniFile里只有"\file.ini",真是百思不得其解,还请高手们赐教,谢谢.

解决方案 »

  1.   

    CString szCurPath;
    CString szIniFile;GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
    szCurPath.ReleaseBuffer() ;//加上这句.
    szIniFile= szCurPath + CString("\\file.ini");
      

  2.   

    CString szCurPath;
    char szPath[MAX_PATH];

    GetCurrentDirectory(MAX_PATH,szPath);
    szIniFile= szPath + CString("\\file.ini");

    MessageBox(szIniFile);
      

  3.   

    CString szCurPath;
    GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
    你这样写是错的,因为这时szCurPath还没有分配空间,是不能调用GetBuffer()来得到字符串指针的。
      

  4.   

    在GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));下加上:
    szCurPath.ReleaseBuffer();CString在使用GetBuffer后,如果()里的值大于本身的长度,就会重新分配一个空间。
    这样,就必需释放原来指定的空间区域~详细资料可以查看CString::ReleaseBuffer()的MSDN说明。