问题描述
我正在使用 C++ 将程序编码为服务,当我将其作为普通程序进行测试时,函数 GetCurrentDirectory
返回正确的路径.但是当我尝试将我的程序安装为服务时,GetCurrentDirectory
返回 C:\Windows\System32
而不是可执行文件的路径.
I am coding a program as service using c++, when I test it as a normal program, the function GetCurrentDirectory
returns the correct path. But when I try to install my program as service, GetCurrentDirectory
returns C:\Windows\System32
instead of the path of the executable.
如何以适用于服务的方式获取可执行文件的路径?
How can I get the path of my executable file in a way that will work for a service?
推荐答案
Windows 服务的工作目录始终为 %WINDIR%\System32
.
Working directory for Windows services is always %WINDIR%\System32
.
要获取可执行文件所在的目录,只需调用 GetModuleFileName 为 hModule
参数设置为 NULL,并手动去除可执行文件名称.
To get directory, where your executable resides, simply call GetModuleFileName with NULL for hModule
argument, and manually strip executable name.
这篇关于GetCurrentDirectory 并没有真正返回可执行文件的路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!