代码如下
CString szCurPath;
CString szIniFile;GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
szIniFile= szCurPath + CString("\\file.ini");szCurPath变量上确实已经被赋了值(等于当前工作目录的路径),但是和CString("\\file.ini")相加想赋给szIniFile的时候却怎么也赋不了,szIniFile里只有"\file.ini",真是百思不得其解,还请高手们赐教,谢谢.
CString szCurPath;
CString szIniFile;GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
szIniFile= szCurPath + CString("\\file.ini");szCurPath变量上确实已经被赋了值(等于当前工作目录的路径),但是和CString("\\file.ini")相加想赋给szIniFile的时候却怎么也赋不了,szIniFile里只有"\file.ini",真是百思不得其解,还请高手们赐教,谢谢.
CString szIniFile;GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
szCurPath.ReleaseBuffer() ;//加上这句.
szIniFile= szCurPath + CString("\\file.ini");
char szPath[MAX_PATH];
GetCurrentDirectory(MAX_PATH,szPath);
szIniFile= szPath + CString("\\file.ini");
MessageBox(szIniFile);
GetCurrentDirectory(MAX_PATH,szCurPath.GetBuffer(MAX_PATH));
你这样写是错的,因为这时szCurPath还没有分配空间,是不能调用GetBuffer()来得到字符串指针的。
szCurPath.ReleaseBuffer();CString在使用GetBuffer后,如果()里的值大于本身的长度,就会重新分配一个空间。
这样,就必需释放原来指定的空间区域~详细资料可以查看CString::ReleaseBuffer()的MSDN说明。