取当前执行文件的路径

来源:互联网 发布:农村淘宝下载安装2016 编辑:程序博客网 时间:2024/05/11 14:07

服务可以通过命令行启动,亦可以部署到管理工具-》服务,运行服务的时候,要取.exe文件的当前路径,并将路径解析为 ‘\\’的。

WCHAR szEngineName[100] = L"UUUU";

WCHAR szEnginePath[MAX_PATH] = L""; 

::GetModuleFileNameW(NULL, szEnginePath, MAX_PATH);
wchar_t* pTmp = _tcsrchr(szEnginePath, _T('\\'));//取最后一个\的指针。
pTmp++;

wcscpy(szEngineName+wcslen(szEngineName), L".exe");
wcscpy(pTmp, m_cEngineName);
pTmp += wcslen(m_cEngineName);
*pTmp = 0;

//当前得到的字符串为"E:\YYY\UUUU.exe";

std::wstring org = L"\\";
std::wstring repl = L"\\\\";


std::wstring szwstrPath = szEnginePath;
int pos = szwstrPath.find(org);
while(pos != -1)
{
szwstrPath.replace(pos, org.length(), repl);
pos = szwstrPath.find(org, pos+repl.length());

}

printf("当前服务运行路径 %s",szwstrPath.c_str().);

//当前得到的字符串为"E:\\YYY\\UUUU.exe";
0 0
原创粉丝点击