设置进程路径为启动路径

2015-01-25 00:25:58 · 作者: · 浏览: 223

?

VC有个让新手抓狂的地方, 把工程路径作为调试模式时的进程当前目录.

估计很多新手因为打不开文件而耗费大量的时间,甚至放弃

?

以前使用纯Windows方式解决这种问题:

?

?? 1:? #include

?? 2:? #include

?? 3:??

?? 4:? #pragma comment(lib,"shlwapi.lib")

?? 5:??

?? 6:? wchar_t exename[MAX_PATH];

?? 7:? ::GetModuleFileName(NULL,exename,MAX_PATH);

?? 8:? ::PathRemoveFileSpec( exename );

?? 9:? ::SetCurrentDirectory( exename );

?

需要跨平台时,可以这样写:

?

?? 1:? #include

?? 2:? #include

?? 3:??

?? 4:? int main(int argc, char* argv[])

?? 5:? {???

?? 6:????? _chdir( boost::filesystem::path( argv[0] ).remove_filename().string().c_str() );???????

?? 7:? }

?

???? 被Windows惯坏了, 到处找Linux或者boost版本的GetModuleFileName, 结果忘记了当年c语言课上教的命令行传入参数... ?

摘自 战魂小筑