Ver Mensaje Individual
  #16 (permalink)  
Antiguo 31/05/2008, 05:23
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 17 años, 2 meses
Puntos: 37
Respuesta: ficheros ini en vs 2005

Hola de nuevo,

dándole vueltas al tema me encontré con que hay que declarar dos veces la misma función, solamente cambiando la asignación del parámetro "lpKeyName". Y lo curioso es que una vez ejecutado el proyecto, puedes borrar la segunda declaración y funciona igual.

MS no dá información sobre el tema (al menos yo no encontré nada), pero creo que debe ser porque "GetPrivateProfileString" está en uso solamente por compatibilidad con 16 bits.

Bueno, te pongo el ejemplo que a mi me ha funcionado (yo lo puse en la clase del Form1).

Código:
Public Class Form1
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    ' La siguiente declaración la puedes eliminar una vez que hayas ejecutado el proyecto
    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Integer, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim Est As String = New String(Chr(0), 255)
        Dim i As Long = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "C:\test.ini")
        If i > 0 Then
            MsgBox("Tu Nombre es: " & Est)
        End If
    End Sub
End Class
Espero que te sirva.