c++,mfc项目学会使用ini配置文件来读取保存的路径

  今天大体在晚上搜了一下ini配置文件如何使用,对于配置文件的写入和读取都有了一个大致的了解,不过有一些细节方面的还是需要注意一下的,写一个博客来记录一下自己在读取ini配置文件时遇到的一些问题。

1.编码问题,在引用别人写入ini配置文件的代码时

PTSTR lpPath = new char[MAX_PATH];
 
strcpy(lpPath, "D:\\IniFileName.ini");
WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);
WritePrivateProfileString("LiMing", "Age", "20", lpPath);
 
WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);
WritePrivateProfileString("Fangfang", "Age", "21", lpPath);
 
delete [] lpPath;

这一段会如果项目属性使用的是Unicode编码格式那么就会显示char类型和lptstr不兼容等错误,这里我贴一下个人觉得比较好的解决方法,大部分方法都是把编码形式改成未设置或者多字节字符集,这样可以解决,但是其他地方如果你用的是Unicode那么就要改成片代码,比较好的解决方法是:

1.用THCHAR代替char,

2.”“部分用_T()包括起来

3._tcscpy代替strcpy

我贴一下引用的博客:

在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?_daxi0315的博客-CSDN博客

以上是写入ini文件需要注意的地方,接下来是读取ini需要注意的地方

LPTSTR lpPath = new char[MAX_PATH];
LPTSTR LiMingSex = new char[6];
int LiMingAge;
LPTSTR FangfangSex = new char[6];
int FangfangAge;
 
strcpy(lpPath, "..\\IniFileName.ini");
 
GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);
LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);
 
GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);
FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);
 
delete [] lpPath;

这边的char[6]如果在写路径的时候尽量将数组写的大一点,这样可以方便让后续的路径读取全部读取,否则会出现读取不到后面的路径出现路径丢失的情况。

总结:读写ini文件大致会写了,但是还有有些地方不是特别熟练,目前只能依葫芦画瓢,了解到原函数之后也还是有一点懵的,但是大体写上来了

你可能感兴趣的:(c++,mfc,开发语言)