Getprivateprofilestring Bug

时间:2009-03-12 09:44:57

标签: vb6 ini

我加密了一些文本并将其放入INI文件中。然后我使用getprivateprofilestring()来检索值,但缺少一些结束字符。我怀疑它可能是一个新行,导致它不完整。写入INI文件是可以的。打开INI文件并查看部分和键 - 一切都井然有序。它只是导致错误的检索部分。

请提供任何帮助。

由于 埃迪

3 个答案:

答案 0 :(得分:1)

首先关闭字符串时,确保在将它们转储到INI文件之前将它们转换为Base64。

最有可能的是,加密字符串创建了一个ascii字符,INI相关API无法很好地处理该字符。

答案 1 :(得分:0)

默认情况下,

WritePrivateProfileStringW将文件写入活动的ANSI代码页中; WritePrivateProfileStringA将始终编写ANSI。

要获得最佳效果,请按照here的说明操作,并在阅读数据时使用GetPrivateProfileStringW

答案 2 :(得分:0)

加密很可能是在您正在编写的流中注入NULL字符。 GetPrivateProfileString将读取一个字符串,直到找到一个NULL字符。

所以我同意Angry Hacker,转换为Base64或其他一些友好的人类可读编码,你就不会有任何问题。