2010-03-22 148 views
2

我正在尝试使用WritePrivateProfileStringWritePrivateProfileStruct函数编写INI文件。WritePrivateProfileStruct是否有大小限制?

我发现,当字节数是比较低的,WritePrivateProfileStructGetPrivateProfileStruct做工精细,但具有较高的字节数(在我的案件62554个字节),Write功能似乎工作,但Get功能不。

我还没有在MS文档中发现这些函数的大小限制。这是为什么发生?

+0

“什么”将是它为什么不起作用。 – djeidot 2010-03-22 19:12:12

+0

哪个函数失败,'GetPrivateProfileStructA'或'GetPrivateProfileStructW'? – MSalters 2010-03-23 11:44:41

+0

我正在使用'GetPrivateProfileStructA' – djeidot 2010-03-23 14:39:12

回答

3

是的,我repro。我可以读回的最大缓冲区是32766字节。较大的值会产生ERROR_BAD_LENGTH。通过校验和和终止零,在我看来,它使用了一个长为(32766 + 2)* 2 = 65536字节的内部缓冲区。有点意义,这是一个传统的16位API。

真的应该考虑使用一个普通的文件。但是一种解决方法是将缓冲区分成两部分。

相关问题