函数的功能

获取exe可执行文件的绝对路径。

用法

通过获取到exe的路径,可以获取到程序路径下(父路径或者子路径)的一些其它文件路径。

函数原型

DWORD WINAPI GetModuleFileName(
_In_opt_ HMODULE hModule, //应用程序或DLL实例句柄,NULL则为获取当前程序可执行文件路径名
_Out_ LPTSTR lpFilename, //接收路径的字符串缓冲区
_In_ DWORD nSize //接收路径的字符缓冲区的大小
);

示例

CString strExePath;
CString strPath;
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH+1);
AfxMessageBox(strPath);//"d:\我的文档\Visual Studio 2005\Projects\test\Debug\test.exe"
int nPos = strPath.ReverseFind(_T('\\'));
strExePath = strPath.Left(nPos+1);
AfxMessageBox(strExePath);//"d:\我的文档\Visual Studio 2005\Projects\test\Debug\"

MAX_PATH宏为编译器所支持的最长全路径名的长度,VC++6.0下为260。

注意点:

  • int pos=str.ReverseFind('\\'); //查找倒数最后一个“\”符号
  • str=str.Left(pos+1); //str只获取exe所在文件夹路径; str为:"E:\MyTest\Debug"
  • reversefind()函数中使用的是单引号;
  • '\'即为''。

拓展:

如果想要获取指定文件所在的目录可以使用MFC中CFile类的成员函数:CFile::GetFilePath();

HMODULE GetModuleHandle(LPCTSTRlpModuleName)返回加载到当前进程地址空间的可执行文件或DLL文件的句柄,若参数为NULL,则返回当前进程的句柄(当前应用程序实例句柄)。

LPTSTR GetCommandLine()返回指向命令行参数的指针,该命令行包括执行文件的完整路径名。

LPWSTR CommandLineToArgvW()函数解析命令行参数,返回指向字符串指针数组的指针。

最新文章

  1. 微信小程序社区上线
  2. 学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波
  3. 多个Class作用于同一个元素的结果分析
  4. 容易混淆的url src href
  5. 一模 (2) day2
  6. NuGet 的使用
  7. 6、android开发中遇到的bug整理
  8. ###Fedora下安装Retext
  9. html表格cell合并插件
  10. 码表 Unicode GBK UTF8 示例
  11. 一个中型项目:本地校园App
  12. ACM比赛(第三次D)
  13. 架设自己的FTP服务器 Serv-U详细配置图文教程
  14. .Net程序员学用Oracle系列(20):层次查询(CONNECT BY)
  15. 小程序wepy.js框架总结
  16. Using a custom AxisRenderer object
  17. 使用xftp连接VirtualBox中的centos6.5
  18. mqtt使用二(集成到java代码中)
  19. cin.get()、流和缓冲区
  20. RabbitMQ与AMQP

热门文章

  1. 关于Redis哨兵机制,7张图详解!
  2. 成功的多项目管理都有哪些"制胜之道"?
  3. Java并发-显式锁篇【可重入锁+读写锁】
  4. [刷题] PTA 03-树3 Tree Traversals Again
  5. 分布式存储ceph---ceph概念及原理(1)
  6. 【转-备忘】scatter函数
  7. MMF的初步介绍:一个规范化的视觉-语言多模态任务框架
  8. TensorFlow csv读取文件数据(代码实现)
  9. MinkowskiEngine实用函数和类
  10. 工作流引擎Activiti使用进阶!详细解析工作流框架中高级功能的使用示例