在C++中设置正在运行的应用程序的当前目录

Rik*_*der 0 c c++ winapi native

下面的回答给出了一个使用C#的解决方案,我想知道如果只使用c ++(而不是c ++\cli)会有什么等价物

System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
Run Code Online (Sandbox Code Playgroud)

有没有什么可以提升的伎俩?

基于这个问题我一直在:正确创建和运行带文件I/O的win32服务

eq-*_*eq- 8

SetCurrentDirectory (在Win32中):

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365530%28v=vs.85%29.aspx

current_pathboost::filesystem:

http://www.boost.org/doc/libs/1_51_0/libs/filesystem/doc/reference.html#current_path

BaseDirectory的等效项可能是GetModuleFileName(对于第一个参数使用空句柄),然后GetFullPathName从可执行路径获取目录.