通过调用函数GetInstanceFolderPath()获取当前exe或dll文件所在的路径。
详细代码如下:
string GetInstanceFolderPath(void)
{
string exePath = "";
TCHAR tcFullPath[MAX_PATH];
char* pChPath = new char[MAX_PATH];
memset(pChPath, '\0', MAX_PATH);
/** 获取当前程序的执行路径exe路径 */
GetModuleFileName(NULL, tcFullPath, MAX_PATH);
/** 将tchar转为char */
TCHAR2Char(tcFullPath, pChPath);
exePath = string(pChPath);
string dirPath = "";
size_t iPos = exePath.rfind("\\");
dirPath = exePath.substr(0, iPos);
/** 释放资源 */
delete[] pChPath;
return dirPath;
}
void TCHAR2Char(const TCHAR* tchar, char* _char)
{
int iLength;
//获取字节长度
iLength = WideCharToMultiByte(CP_ACP, 0, tchar, -1, NULL, 0, NULL, NULL);
//将tchar值赋给_char
WideCharToMultiByte(CP_ACP, 0, tchar, -1, _char, iLength, NULL, NULL);
}