2005年的博

搬家到 http://blog.csdn.net/persuper/

导航

Windows 取得程序运行的路径

 可能你的程序会移植到别的系统,或者别的目录下,而在你的程序中要动态取得当前程序运行的路径,试一试下面的方法:
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函数可以获得当前目录。

上面的方法我测试以后出结果

posted on 2005-05-14 14:34  迷失天堂  阅读(1432)  评论(0编辑  收藏  举报