【已解决】.ini文件无法读取信息

本文探讨了使用C++的GetPrivateProfileInt函数从.ini文件读取设置时遇到的问题及解决方案,包括路径配置、相对路径理解以及编码格式的要求。

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

C++的库提供了现成的读取.ini文件的API:GetPrivateProfileIntGetPrivateProfileString,具体上网查。

我的调用如下:

int port = GetPrivateProfileInt(L"PORT", L"port", 5555, L".\\test.ini");

test.ini文件内容如下:

[PORT]
port=8888

但是port始终为5555,而不是文件里的8888
我本以为可能是斜杠写反了之类的问题,也有可能是斜杠只写了一个的问题,反反复复改了几遍,仍然无果。直到在某帖子里看到ini文件的编码格式为ANSI才能被正确读取,才算找到了解决方法。

该函数使用需要注意的问题如下:
1、斜杠写两道,而且是\不是/。在文件夹路径中用的就是\,粘贴进程序需要多加一道。
2、我上边ini文件用的是相对路径,这个相对是相对于真正调用到它的cpp而言的。我这个语句写在一个最终封装为dll输出的A.cpp中,在另外一个B.cpp中调用该dll的接口,那么按照我的相对路径,我的test.ini应该放在B.cpp的同级目录下,而不是A.cpp。
3、就是上面的编码格式问题。值得注意的是,前不久我在写一个Flash读取txt文件的程序时,也遇到了编码问题。txt默认保存为ANSI格式,而Flash读取需要读UTF-8格式,所以这和本题正好相反。切记切记。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值