ini文件一之vs下读取应用程序的路径问题

本文介绍了如何在MFC环境下利用CString宏读取与应用程序一起的INI文件,并展示了在非MFC环境下通过宽字符和多字节转换实现相同功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、mfc:

在mfc下面有Cstring宏可以用,而且使用宽字符串很容易就可以读取文件的路径如下:(与应用程序在一起的ini文件)

TCHAR *buffer=new TCHAR[1000];
GetModuleFileName(NULL, buffer, 1000);
CString sPath = CString(buffer);
sPath = sPath.Left(sPath.ReverseFind('\\'));
sPath +="\\info.ini";
int lowerlimit = GetPrivateProfileInt(_T("PARAM"),_T("LOWERLIMIT"),0,sPath);


2、倘若不使用mfc(afx.h),也就没有了Cstring这个方便的参数类型,采用如下方式进行:

//argv定义为PWSTR*的格式,从main中传入。

inibaseName = argv[0];
inibaseName = _wcsrev((wchar_t*)inibaseName);  //turn off the string
inibaseName= _tcschr(inibaseName,TEXT('\\'));
inibaseName = _wcsrev((wchar_t*)inibaseName); 

//muli-->>w
char* path = new char[wcslen(inibaseName)*2+1];
memset(path,0,wcslen(inibaseName)*2+1);
WideCharToMultiByte(CP_ACP,WC_COMPOSITECHECK,inibaseName,wcslen(inibaseName),path,wcslen(inibaseName),NULL,NULL);
strcat(path,"devs.ini");

//w-->muli
WCHAR wszClassName[256];
memset(wszClassName,0,sizeof(wszClassName));
MultiByteToWideChar(CP_ACP,0,path,strlen(path)+1,wszClassName,sizeof(wszClassName)/sizeof(wszClassName[0]));

int num1 = GetPrivateProfileInt(_T("DEVNAME"),_T("IDD"),NOT_EXIST,wszClassName);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值