有一个问题肯定困扰大家很久,在vs中f5启动调试时,默认情况下根目录是.vcproj文件所在目录。而生产的.exe所在的目录往往是加一个debug,或者是 win32/debug等。目录不统一,造成在哪里放置dll,在哪里生成日志文件,相当的困扰。
下面展示出如何在vs中获取运行的exe的目录:
TCHAR exeFullPath[MAX_PATH]; // Full path
GetModuleFileName(NULL, exeFullPath, MAX_PATH);
std::wstring strFullPath = (std::wstring)(exeFullPath);
int nStart = strFullPath.find_last_of(TEXT("\\"));
std::wstring strExeName = strFullPath.substr(nStart + 1, strFullPath.length() - 4);
plus:
GetCurrentDirectory()
获取路径,不含文件名