windwos下,想要获取当前工作路径是一件非常简单的事情,但是如果在服务程序中想要获取当前exe所在的工作路径,那么就需要特别处理一下了,下面是我常用的代码,用来获取服务所作的工作目录:
void GetAbsoluteDirectory(char *cTopSkyFileName)
{
int nLen = 0;
int i = 0;
GetModuleFileName(NULL, cTopSkyFileName, MAX_PATH);
nLen = strlen(cTopSkyFileName);
nLen = strlen(cTopSkyFileName);
for (i = nLen - 1; i > 0; i--)
{
if ('/' == cTopSkyFileName[i] || '\\' == cTopSkyFileName[i])
{
return;
}
else
{
cTopSkyFileName[i] = 0;
}
}
return;
}
通过参数返回的cTopSkyFileName中就是当前服务的工作路径