vs 获取当前程序文件的路径方法

来源:互联网 发布:网络信息时代 编辑:程序博客网 时间:2024/06/05 02:19

vc获取当前程序文件的路径方法 


1.方法1

   char pBuf[MAX_PATH];                                               //存放路径的变量
   GetCurrentDirectory(MAX_PATH,pBuf);                   //获取程序的当前目录
   strcat(pBuf,"\\");
   strcat(pBuf,AfxGetApp()->m_pszExeName);   
   strcat(pBuf,".exe");                                                       //获取程序的全文件名

2.方法2

   //函数返回应用程序所在的路径  

   CString    CClientApp::ReturnPath()  

   {   
   CString    sPath;   
   GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);   
   sPath.ReleaseBuffer    ();   
   int    nPos;   
   nPos=sPath.ReverseFind('\\');   
   sPath=sPath.Left(nPos);   
   return    sPath;   
   }

3.对比及建议

方法1获取的是程序的工作路径,如某个程序安装在C,D盘或者其它任何,当你从[开始]-[程序]后的菜单中打开该文件,此时获取的是用户工作路径,如:C:\Documents and Settings\[计算机当前用户名]\......\....
如果你想通过这个路径来加载你放在程序目录下的文件,必定出错。通常这种情况在你编译调试程序时是不会出错的,你跟踪得到的绝对路径,但打包安装后一定出问题。

方法2获取的是程序的绝对路径,用这个路径加载同目录下的文件是不会有问题的。

0 0
原创粉丝点击