我只是在修補kernel32中的.NET的GetPrivateProfileString和GetPrivateProfileSection,並發現了一些奇怪的東西,我不明白。GetPrivateProfileString Oddity
讓我們先從這個encantation:
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在文件的第二行進行統計,它將返回預期值。
起初我雖然是在Declare中使用W版本和Unicode,但改變這些似乎沒有效果。
我錯過了什麼?
有沒有辦法讓工作室停止爲簡單測試文件編寫BOMS? – claco 2008-09-24 01:16:09
我沒有意識到BOM暗中偷偷的事實。我幾乎花了一個小時想知道發生了什麼,然後才找到答案。大! – 2010-11-20 09:24:24