Tratando de "wrapear" la función [i:1qkhrfx0]GetBinaryType[/i:1qkhrfx0] me encuentro con el problema de no poder definir "un puntero a long o dword" para pasar una variable por referencia. Para strings existe y es la constante LPSTR.
Mirando los ficheros DLL.CH he encontrado las constantes para ello:
[code=fw:1qkhrfx0][/code:1qkhrfx0]Pero no existe ninguna constante de "puntero a long o dword".
En los "Windows Data Types").aspx están todos los tipos de variables, pero no me pone su valor de constante. Supongo que será la constante LPLONG o LPDWORD.
La constante LPSTR la define así: [i:1qkhrfx0]A pointer to a null-terminated string of 8-bit Windows (ANSI) characters. For more information, see Character Sets Used By Fonts.[/i:1qkhrfx0]
Pero la función dice que tiene que ser LPCTSTR definida como: [i:1qkhrfx0]An LPCWSTR if UNICODE is defined, an LPCSTR otherwise. For more information, see Windows Data Types for Strings.[/i:1qkhrfx0]
En el ficheros DLL.CH tampoco tengo el valor de la constante LPCTSTR.
La definición de la función es esta:
[code=fw:1qkhrfx0][/code:1qkhrfx0] ).aspx
El wrapeado es:
[quote:1qkhrfx0]DLL32 FUNCTION GetBinaryType(cFile AS [color=#FF0000:1qkhrfx0][b:1qkhrfx0][/b:1qkhrfx0][/color:1qkhrfx0], nType AS [color=#FF0000:1qkhrfx0][b:1qkhrfx0][/b:1qkhrfx0][/color:1qkhrfx0]) AS LONG PASCAL FROM "GetBinaryTypeW" LIB "Kernel32.dll"[/quote:1qkhrfx0] Por otro lado la dll [i:1qkhrfx0]Kernel32.dll[/i:1qkhrfx0] dispone de dos funciones GetBinaryType: GetBinaryType[size=150:1qkhrfx0]A[/size:1qkhrfx0] (ANSI) y GetBinaryType[size=150:1qkhrfx0]W[/size:1qkhrfx0] (Unicode), y no se cual usar.¿Se podrían tener todos los valores de los tipos de variables?
↧