函数:
DWORD GetCurrentDirectory(
DWORD nBufferLength, // size, in characters, of directory buffer
LPTSTR lpBuffer // pointer to buffer for current directory
);
获得可执行文件当前路径,使用过程中可能会出现这样的问题:当软件执行过程中操作了其他路径下的文件,而此函数得到的不是可执行文件的当前路径,而是最后一个被操作过的文件的路径;例如:可执行文件在D:\123\215.exe,软件最后一次操作的文件在E:\682\324.txt,最后得到的路径则会是E:\682\。
当然出现的这样的问题不是我们想要的结果,问题总是有办法解决的;
函数:
DWORD GetModuleFileName(
HMODULE hModule, // handle to module to find filename for
LPTSTR lpFilename, // pointer to buffer to receive module path
DWORD nSize // size of buffer, in characters
);
此函数可以获得当前执行文件的全路径,例如:直接可以得到D:\123\215.exe,虽然多出了个碍事的215.exe可执行文件名,只要我们去掉它,就是我们想要的路径D:\123\;
TCHAR Dirbuf[MAX_PATH];
LPTSTR LpCurDir;
LpCurDir=Dirbuf;
GetModuleFileName(NULL,LpCurDir,MAX_PATH); //获取可执行文件的全路径
CString logName(LpCurDir);