获取执行文件路径
2015-09-18 07:58
351 查看
1.问题
原来代码在win7下可以正常运行在xp下无法输出
mymain.cpp
#include <stdio.h> #include <Windows.h> #include <string> int main() { wchar_t pwbuf[MAX_PATH] = {0}; DWORD dwRet = GetModuleFileNameW(NULL, pwbuf, MAX_PATH); if (dwRet != 0) { std::wstring strpath(pwbuf); int npos = strpath.find_last_of(L'\\'); if (npos != -1) strpath.erase(npos + 1); wprintf(L"%s\n", strpath.c_str()); } system("pause"); return 0; }
2.解决
在xp下返回值为0成功,在win7下返回非0成功 修改后的代码
#include <stdio.h> #include <Windows.h> #include <string> int main() { wchar_t pwbuf[MAX_PATH] = {0}; DWORD dwRet = GetModuleFileNameW(NULL, pwbuf, MAX_PATH); #if (WINVER >= 0x0501) if (dwRet != 0) #else if (dwaRet == 0) #endif { std::wstring strpath(pwbuf); int npos = strpath.find_last_of(L'\\'); if (npos != -1) strpath.erase(npos + 1); wprintf(L"%s\n", strpath.c_str()); } system("pause"); return 0; }
3.备注
有很多api微软在操作系统上的返回值可能有不同的含义,故除了看文档,还要看实际中的情况
http://download.csdn.net/detail/zhang_ruiqiang/9116267
相关文章推荐
- 分享"狼用"API一個
- 如何在局域网访问Tomcat项目
- C++Primer第五版 10.4.1节练习
- 顺序循环队列的基本操作
- C++Primer第五版 10.3.4节练习
- H index II
- C++Primer第五版 10.3.3节练习
- arm-linux-ld 的使用
- C++Primer第五版 10.3.2节练习
- gradle--第十一章 使用Gradle命令行2
- C++Primer第五版 10.3.1节练习
- jQuery
- UVa 10443 - Rock
- 如何在没有安装微软Excel环境下操作Excel文件?
- C++Primer第五版 10.2.3节练习
- C++Primer第五版 10.2.2节练习
- C++Primer第五版 10.2.1节练习
- C++Primer第五版 10.1节练习
- 算法练习 之0918
- C++Primer第五版 第9章 顺序容器(练习解答)