欢迎来到天天文库
浏览记录
ID:34726791
大小:49.15 KB
页数:3页
时间:2019-03-10
《vc获取当前程序(exe)所在的路径》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC获取当前程序(EXE)所在的路径2010-05-2710:05一、1.只获得路径字串不包含文件名 TCHARszFilePath[MAX_PATH+1]={0}; GetModuleFileName(NULL,szFilePath,MAX_PATH); (_tcsrchr(szFilePath,_T('\')))[1]=0;//删除文件名,只获得路径字串 CStringstr_url=szFilePath;//例如str_url==e:programDebug---------------------------------------------
2、------------2.获得双斜杠路径不包含文件名TCHAR_szPath[MAX_PATH+1]={0};GetModuleFileName(NULL,_szPath,MAX_PATH);(_tcsrchr(_szPath,_T('\')))[1]=0;//删除文件名,只获得路径字串CStringstrPath;for(intn=0;_szPath[n];n++){if(_szPath[n]!=_T('\')){ strPath+=_szPath[n];}else{ strPath+=_T("\\");}}MessageBox(strPath);//
3、输出==e:\program\Debug\二、1:获取应用程序自身完整路径文件名方法1:#include"stdlib.h"voidmain(){cout<<_pgmptr<4、};if(!GetModuleFileName(NULL,szPath,MAX_PATH)){return;}AfxMessageBox(szPath);2:如何获取应用程序所在目录?这里值得注意的是很多人都用GetCurrentDirectory(MAX_PATH,szCurrentPath);来获取。这个方法并不好,经常出错,比如现在我有一个程序在d:test目录下,现在运行这个程序后用GetCurrentDirectory得到的是d:test。接着在程序里用CFileDialog来打开一个C:testtest.txt文件后再调用GetCurrentDir5、ectory,那么得到的szCurrentPath就是C:test而不是d:test。推荐用如下方法来得到当前程序所在目录比较安全:void_splitpath(constchar*path,char*drive,char*dir,char*fname,char*ext);函数来分解开始提到的_pgmptr,然后再用void_makepath(char*path,constchar*drive,constchar*dir,constchar*fname,constchar*ext);函数来对分解后的路径进行组合。这两个函数结合起来功能强大,使用灵活,基本上所有的有6、关目录和路径方面的操作都可以搞定,就是麻
4、};if(!GetModuleFileName(NULL,szPath,MAX_PATH)){return;}AfxMessageBox(szPath);2:如何获取应用程序所在目录?这里值得注意的是很多人都用GetCurrentDirectory(MAX_PATH,szCurrentPath);来获取。这个方法并不好,经常出错,比如现在我有一个程序在d:test目录下,现在运行这个程序后用GetCurrentDirectory得到的是d:test。接着在程序里用CFileDialog来打开一个C:testtest.txt文件后再调用GetCurrentDir
5、ectory,那么得到的szCurrentPath就是C:test而不是d:test。推荐用如下方法来得到当前程序所在目录比较安全:void_splitpath(constchar*path,char*drive,char*dir,char*fname,char*ext);函数来分解开始提到的_pgmptr,然后再用void_makepath(char*path,constchar*drive,constchar*dir,constchar*fname,constchar*ext);函数来对分解后的路径进行组合。这两个函数结合起来功能强大,使用灵活,基本上所有的有
6、关目录和路径方面的操作都可以搞定,就是麻
此文档下载收益归作者所有