.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 が最初の行から始まる場合、バッファーは何も返しません。ファイルの 2 行目に lpApplicationName stats がある場合、期待値が返されます。
最初は Declare で W 版と Unicode を使用する問題だと思っていましたが、それらを変更しても効果がないようです。
私は何が欠けていますか?