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);