如何获取应用程序路径
比如我用VC编的一个名叫1.exe的程序,这个程序如何获取自身所在的目录?
比如VB中用 App.Path 就可以解决,VC中呢?
问题点数:38、回复次数:10Top
1 楼flyelf(空谷清音)回复于 2006-03-04 21:22:12 得分 10
GetModuleFileNameTop
2 楼ycliycli(杏林居士)回复于 2006-03-04 21:41:13 得分 5
给你一段代码参考一下:
char ExeFilePath[MAX_PATH];
VERIFY( 0 != GetModuleFileName(NULL, ExeFilePath, sizeof(ExeFilePath)));
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath(ExeFilePath, drive, dir, fname, ext);
wsprintf(ExeFilePath, "%s%s", drive, dir);Top
3 楼rageliu(天气好了就去长白山看水怪去了,嘿嘿...)回复于 2006-03-04 22:26:13 得分 2
GetModuleFileName()
需要其中的相关信息需要你自己解析Top
4 楼yzm8529(游戏狂)回复于 2006-03-06 21:13:23 得分 0
找到一个GetCurrentDirectory()函数很方便,
那个GetModuleFileName()我不会用,哪位举个例,结贴给分Top
5 楼guangmingshizhe(光明使者(看《C++程序设计语言》))回复于 2006-03-06 21:24:21 得分 5
GetCurrentDirectory这个函数不是很好啊
如果中间你调用文件对话框,对改变你的当前路径Top
6 楼coolzdp(unreal张师傅)回复于 2006-03-06 22:19:53 得分 4
CString strPath;
TCHAR szCurrentDir[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, szCurrentDir);
strPath.Format(_T("%s"), szCurrentDir);
调用文件对话框记得加上 OFN_NOCHANGEDIRTop
7 楼YufengShi(浪子)回复于 2006-03-06 23:27:41 得分 5
BOOL GetCurrentPath(LPTSTR szPath, DWORD nSize)
{
DWORD dwRet =
GetModuleFileName(GetModuleHandle(NULL), szPath, nSize);
if(0 == dwRet)
{
return FALSE;
}
else
{
TCHAR* p = szPath;
while(*p)++p; // let p point to '\0'
while('\\' != *p)--p; // let p point to '\\'
*p = '\0'; // get the path
return TRUE;
}
}Top
8 楼mosing(A Crimson Cosmos)回复于 2006-03-06 23:43:09 得分 4
TCHAR tcsModulePath[_MAX_PATH];
::GetModuleFileName(NULL, tcsModulePath, _MAX_PATH);
CString strCurDir = tcsModulePath;
strCurDir = strCurDir.Left(strCurDir.ReverseFind(TEXT('\\')));
TRACE(strCurDir);
Top
9 楼moloto2004()回复于 2006-03-08 16:24:16 得分 2
#include <dir.h>
char buf[_MAX_PATH];
char* flag = getcwd(buf,_MAX_PATH)Top
10 楼rockersz(世上的无奈需要我去忍耐...)回复于 2006-03-08 16:28:09 得分 1
GetModuleFileNameTop




