Estaba retocando con llamar a GetPrivateProfileString y GetPrivateProfileSection en kernel32 desde .NET y encontré algo extraño que no entiendo.GetPrivateProfileString Oddity
Vamos a empezar con este 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
Si paso un (sección) lpApplicationName, sin lpKeyName y sin lpDefault, que debería obtener todas las claves de esa sección, y de hecho lo hago: 50% del tiempo.
Si el archivo ini tiene lpApplicationName comenzando en la primera línea, el búfer no devuelve nada. Si lpApplicationName stats en la segunda línea del archivo, devuelve los valores esperados.
Al principio pensé que era una cuestión de usar la versión W y Unicode en el Declare, pero cambiarlos parece no tener ningún efecto.
¿Qué me estoy perdiendo?
¿Hay alguna manera de decirle a Studio que deje de escribir BOMS para archivos de prueba simples? – claco
No estaba al tanto del hecho de que la lista de materiales se infiltra subrepticiamente. Casi pasé una hora preguntándome qué estaba pasando antes de encontrar tu respuesta. ¡Estupendo! –