解决在VC++6.0中遇到GetPrivateProfileIntA读值错误的问题
来源:互联网 发布:淘宝如何查看累计消费 编辑:程序博客网 时间:2024/06/14 13:02
最近在给一个VC++6.0中开发的MFC项目中添加一个串口通信的功能,而为了让串口在程序初始化的过程中就开始工作,必须在将串口写到初始化的函数中,这样遇到了一个矛盾,就是该串口的参数配置就固定不变了,这样对后期软件改进方面不利,故而需要用到配置文件对其进行配置。
在这里,因为仅需要配置串口号,我在这里使用的是GetPrivateProfileInt函数,实现代码如下:
int comPortNum = GetPrivateProfileIntA("ComPortInfo","Port",5,path);
这里简单说明一下Windows系统下配置文件(INI文件)的格式,如下所示:[Section] ;节Key = Value ;键=键值现在解释一下GetPrivateProfileIntA函数中的参数,参数1ComPortInfo是节名,参数2Port是键名,参数3是默认值(在读取配置文件值失败后,自动选择该值),参数4path是配置文件的绝对地址(一定填写绝对地址,很多人在这里会写相对地址,导致读取配置文件的值失败)。
我在项目中利用上述函数读取值的时候,总是读出的是默认值5,百事不得其解,查了很多资料,最后看到了函数名中有个A,可能是读取ANSI编码格式的文件,我猜测可能是编辑配置文件的编码问题,带着这个疑问,用NotPad++打开ini文件,发现其编码格式是UTF-8。尝试性的将文件改成了ANSI的格式,然后在VC++6.0中DEBUG一下,观察comPortNum中的值,已经和我在配置文件中配置的一样了,问题解决!
综上所述,GetPrivateProfileIntA函数,读取的配置文件,编码格式必须是ANSI格式!
顺带提一下用Windows自动的笔记本如何更改编码格式,两种思路:
1.新创建文件,并且未保存的情况下,在保存的时候,可以选择编码;
2.在已经有保存文件的情况下,可以在另存为的时候,选择编码。
以上。
阅读全文
0 0
- 解决在VC++6.0中遇到GetPrivateProfileIntA读值错误的问题
- wince6.0,vc++调试中遇到的错误与解决
- 自己在CODING过程中遇到的问题以及解决(C/VC)
- vc#.net2005开发中遇到的小问题及解决
- 在MFC中生成数据源过程中所遇到的问题及解决(如有错误,请指出)
- 我遇到的VC问题及解决
- VC错误解决:在查找预编译头指令时遇到意外的文件结尾
- 在搭建mysql集群中遇到的问题,求解决
- 王忠家:在Qt5中解决VC下的乱码问题
- vc++6.0在win8.1遇到的问题
- VC++中可能遇到的问题
- VC win32 application 中遇到的问题
- VC中添加位图遇到的问题
- VC++中可能遇到的问题收藏
- vc++数据库编程中遇到的问题
- VC编程过程中遇到的问题
- vc数字图像处理中遇到的问题
- VC中外部符号错误的解决
- 印度正在成为阿里、腾讯们逐鹿的新战场
- Dynamic Web Project 的学习笔记
- 实时灯光屏幕渐变
- opencv中的画图函数转载学习
- AngualrJS(十四)$watch 1
- 解决在VC++6.0中遇到GetPrivateProfileIntA读值错误的问题
- Fibonacci sequence两种实现算法及其复杂度分析
- 正则表达式入门_多字符匹配
- EL表达式和JSTL标签库使用
- N3D
- java算法-冒泡排序
- C++拷贝构造函数详解
- 1668: 高桥和低桥
- redis必杀高级:管道技术