我只是在修补从 .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 stats 在文件的第二行,它会返回预期值。
起初我虽然在 Declare 中使用 W 版本和 Unicode,但更改这些似乎没有任何效果。
我错过了什么?