您的位置:首页 > 其它

Windows 取得程序运行的路径

2005-05-14 14:34 573 查看
可能你的程序会移植到别的系统,或者别的目录下,而在你的程序中要动态取得当前程序运行的路径,试一试下面的方法:
1,
一个办法是在一启动的时候用 GetCurrentDirectory获得启动时的目录,这个目录在许多情况下就是程序所在目录,但用户可以通过修改快捷方式中的设置启动目录。
另一个办法是调用__argv[0],如
strcpy(filename, __argv[0]);
__argv[0]包括本程序的路径和EXE文件名,你可以从中得到程序路径。这种方法不受快捷方式中的设置影响。

2,可以用这个API试试看:
GetModuleFileName(NULL,strPath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);
strPath是你自己定义的CString类型变量,用来存储执行程序路径,一般来说,取得路径后你还要在后边加上“\\”才行。

比如:
TCHAR exeFullPath[MAX_PATH];
CString strPath;
GetModuleFileName(NULL,exeFullPath,MAX_PATH);
strPath=(CString)exeFullPath;
int position=strPath.ReverseFind('\\');
strPath=strPath.Left(position+1);
再如:
TCHAR FilePath[MAX_PATH];
GetModuleFileName(NULL,FilePath,MAX_PATH);
(_tcsrchr(FilePath,'\\'))[1] = 0;
lstrcat(FilePath,_T("MY.ini"));

3, 使用API的GetCurrentDirectory函数可以获得当前目录。

上面的方法我测试以后出结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐