【发布时间】:2010-09-12 14:13:36
【问题描述】:
我只是在修补从 .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(部分),没有 lpKeyName 和 lpDefault,我应该得到该部分的所有密钥,而且确实有:50% 的时间。
如果 ini 文件的 lpApplicationName 从第一行开始,则缓冲区不返回任何内容。如果 lpApplicationName 统计在文件的第二行,它会返回预期值。
起初我虽然是在声明中使用 W 版本和 Unicode,但更改这些似乎没有效果。
我错过了什么?
【问题讨论】:
标签: winapi unicode encoding ini