运行路径的问题
比如程序的路径是在c:\test\test.exe
c:\test\config.ini
当我在c:\test\目录下执行test.exe时,可以找到目录里的config.ini
但是如果我创建test.exe的快捷方式到桌面.
然后双击这个快捷方式执行就无法找到config.ini了
请问这种情况怎么办?
问题点数:10、回复次数:3Top
1 楼vieri_ch(尘雨-自在飞花轻似梦,无边丝雨细如愁)回复于 2006-12-01 13:51:39 得分 5
GetModuleFilename(NULL...)得到当前程序文件所在路径,然后从中提取出来
TCHAR tPath[MAX_PATH];
memset(tpath,0,sizeof(tPath)*sizeof(TCHAR));
::GetModuleFileName(NULL,tPath,MAX_PATH);
CString str=tPath;
int i=str.ReverseFind("\\");
if (i!=-1)
{
str=str.Mid(0,i);
}
str="File Name=" + str + "\\db.udl";
Top
2 楼mrxwh(大徐)回复于 2006-12-01 13:57:01 得分 4
建议使用绝对路径而不是相对路径。
在桌面上,默认工作路径是桌面,必然无法得到config.ini文件了。
GETCURRENTPATH得到的可能是工作目录而不是当前模块(dll或exe)所在的目录。
GetModuleFileName()得到当前模块的全部路径(例如:c:\mydoc\prog.exe ),可以得到模块的路径Top
3 楼alvachien(白衣战神,四大绝技:C#/C++/T-SQL/ABAP)回复于 2006-12-01 13:59:39 得分 1
把快捷方式上设置上运行路径就可以了Top





