我正在寻找一种替代方法来从 Windows 下的 .ini 文件加载和保存小二进制块。
我知道 Windows 注册表具有读取和写入 REG_BINARY 数据的功能,但我无法为 .ini 文件找到相同的功能。
显然,数据必须转义存储在 .ini 文件中。但必须能够将其存储和检索为具有任何值 0x00-0xFF 的字节。
一种方法是先简单地对二进制数据进行 base64 编码。然后,您可以从/向 .ini 文件读取和写入 base64 编码的数据,就像从/向任何文件读取/写入数据一样。base64 编码会将二进制数据转换为 ascii,使用十六进制字符 (0-F) 来表示二进制数据。有关详细信息,请参阅http://en.wikipedia.org/wiki/Base64。
有GetPrivateProfileStruct和WritePrivateProfileStruct函数可以读取二进制数据并将其写入 INI 文件。
这些确实要求您在读取数据时知道数据的大小,因此如果您要存储可变大小的数据,则必须将数据的大小存储在不同的 INI 设置中。
此外,如果您确实将指向 a 的指针传递struct
到这些函数中,则在进行更改时需要非常小心,因为内存布局struct
必须完全匹配才能成功读取。