Citar
Error '49' en tiempo de ejecucion: La convención de llamadas a DLL es incorrecta.
Tengo declarada la funcion como se indica en el posting "Manejo basico del registro" asi :Citar
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
y la llamo asi : Citar
i = leerS("saludo")
No se que pasa porque las otras funciones: crear, valorS; me funcionan muy bien pero a la hora de solo querer leer me meto en problemas ya probe quitandole la declaracion ByVal asi:Citar
Function leerS(nombre As String) As Long
buffer = String(256, 0)
leerS = RegQueryValueEx(h, nombre, 0, REG_SZ, buffer, Len(buffer))
End Function
y ya con eso no me sale el error de la dll, sin embargo no toma el valor de la llave, al debuguear en la variable buffer me indica en su valor : No coinciden los tipos y en el Tipo : Variant/<Tipo variant no compatible>buffer = String(256, 0)
leerS = RegQueryValueEx(h, nombre, 0, REG_SZ, buffer, Len(buffer))
End Function
Alguien sabe en donde esta el problema