DWORD dirlen=100;
GetCurrentDirectory(dirlen,sDir.GetBuffer(100));
sDir += "\\test.ini";
m_et1.SetWindowText(sDir.GetBuffer (100));结果显示“\test.ini”路径哪里了?晕啊
GetCurrentDirectory(dirlen,sDir.GetBuffer(100));
sDir += "\\test.ini";
m_et1.SetWindowText(sDir.GetBuffer (100));结果显示“\test.ini”路径哪里了?晕啊
GetCurrentDirectory(dirlen,sDir.GetBuffer(100));
sDir.ReleaseBuffer();//<========================增加这一句
sDir += "\\test.ini";
m_et1.SetWindowText(sDir.GetBuffer (100));
sDir.ReleaseBuffer();//<========================增加这一句
If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions
CString sDir;
LPTSTR lpBuffer=sDir.GetBuffer(100);
GetCurrentDirectory(dirlen,lpBuffer);
sDir+="\\test.ini";
m_et1.SetWindowText(sDir);
注意,你获得的路径赋给了lpBuffer,而不是sDir,此时sDir为NULL,故最后的sDir为\test.ini。此问题可修改如下:
DWORD dirlen=100;
char sDir[100];
GetCurrentDirectory(dirlen,sDir);
strcat(sDir,"\\test.ini");
m_et1.SetWindowText(sDir);