当前位置:  开发笔记 > 开发工具 > 正文

GetPrivateProfileString奇怪

如何解决《GetPrivateProfileString奇怪》经验,为你挑选了1个好方法。

我只是在.NET中调用kernel32中的GetPrivateProfileString和GetPrivateProfileSection,并遇到了一些我不理解的奇怪事情.

让我们从这个咒语开始:

    Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringW" ( _
    ByVal lpApplicationName As String, _
    ByVal lpKeyName As String, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString() As Char, _
    ByVal nSize As Int32, _
    ByVal lpFileName As String) As Int32

如果我传递一个lpApplicationName(section),没有lpKeyName而没有lpDefault,我应该得到该部分的所有密钥,而且确实是这样:50%的时间.

如果ini文件在第一行开始有lpApplicationName,则缓冲区不返回任何内容.如果lpApplicationName统计信息位于文件的第二行,则返回预期值.

起初我虽然是在Declare中使用W版本和Unicode的问题,但改变它们似乎没有任何效果.

我错过了什么?



1> Rob Walker..:

检查您打开的文件是否有字节顺序标记(标记文本编码类型的几个字节).

这些Windows API调用似乎没有grok字节顺序标记,并导致它们错过第一部分(因此如果有一个空行,一切正常).

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有