今天大体在晚上搜了一下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文件大致会写了,但是还有有些地方不是特别熟练,目前只能依葫芦画瓢,了解到原函数之后也还是有一点懵的,但是大体写上来了