有一个问题肯定困扰大家很久,在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()获取路径,不含文件名