扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
今天用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
}
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1737191
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者