获取可执行文件的当前路径

来源:互联网 发布:apache绑定多个域名 编辑:程序博客网 时间:2024/05/27 14:16

今天用C++写程序,需要读取与程序处于相同目录下的ini的配置文件,由于很久没有用C++了,感觉有些陌生,也忘记寻找路径的方法了。以前的代码也懒得看,所以就在网上搜索,搜到了能实现相关功能的 函数:GetCurrentDirectory(MAX_PATH,strPath.GetBuffer(MAX_PATH))  获得的是应用程序运行时所在目录。但由于在使用Microsoft Visual Studio.NET编译并运行项目时,真正的宿主是IDE,所以当前目录是项目所在目录,并不是DEBUG或者RELEASE目录

还有一个函数叫GetCurrWorkingDir() 我用的是VS2005,不能通过编译,说是什么使用的是早期版本的API函数,反正是通不过编译,这个函数我也就放弃使用了。于是还是只有自己动手了。似乎记得theApp有个属性存储了本实例的路径,但半天未果。最后还是用的GetModuleFileName这个函数获取绝对路径,并采用拆分字符串的方法,具体实现如下:

CString GetCurrDir()
{
 TCHAR szPath[MAX_PATH];
    if( !GetModuleFileName( NULL, szPath, MAX_PATH ) )
    {
        MessageBox(_T("GetModuleFileName failed!") + GetLastError());
        return FALSE;
    }
 CString strPath = szPath;
 int index = strPath.ReverseFind('//');
 strPath.Truncate(index);
 return strPath; //后面读取配置文件还要加上字符串//文件名.ini
}

原创粉丝点击