Ich habe gerade mit dem Aufruf von GetPrivateProfileString und GetPrivateProfileSection in Kernel32 aus .NET herumgebastelt und stieß auf etwas Seltsames, das ich nicht verstehe.GetPrivateProfileString Oddity
Beginnen wir mit diesem encantation starten:
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
Wenn ich einen lpApplicationName (Abschnitt) passieren, kein lpKeyName und kein lpDefault, sollte ich alle Schlüssel für diesen Abschnitt erhalten, und in der Tat zu tun I: 50% der ganzen Zeit.
Wenn in der INI-Datei lpApplicationName in der ersten Zeile beginnt, gibt der Puffer nichts zurück. Wenn lpApplicationName in der zweiten Zeile der Datei steht, werden die erwarteten Werte zurückgegeben.
Zuerst dachte ich, es ginge nur darum, die W-Version und Unicode im Declare zu verwenden, aber das zu ändern scheint keine Wirkung zu haben.
Was fehlt mir?
Gibt es eine Möglichkeit zu sagen, dass Studio aufhören soll, BOMS für einfache Testdateien zu schreiben? – claco
Ich war mir nicht bewusst, dass die BOM heimlich einschleichen. Fast eine Stunde lang habe ich mich gefragt, was los ist, bevor ich deine Antwort gefunden habe. Groß! –