Estaba viendo el ejercicio para usar LOADLIBRARY, luego el GETPROCADDRESS,
hasta ahi todo bien, pero cuando ejecuto el CALLDLL me da error, tengo que
agregar alguna otra libreria
Gracias por la ayuda
"Ignacio Ortiz de Zúñiga" <
InvalidAccount@ozs.com> escribió en el mensaje
news:61_43424940$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> José,
>
> Esa es una funcionalidad de XHarbour. Por ejemplo:
>
> [c:xharbourxharbourcontribwhat32examplesimports.prg]
>
> #include "c:what32includeimport.ch"
> #Include "c:what32includeWinTypes.ch"
>
>
> STATIC USER32
> STATIC GDI32
> STATIC COMCTL32
> STATIC KERNEL32
> STATIC WINSPOOL
> STATIC WINMM
>
> INIT PROCEDURE LoadLibs()
> USER32 := LoadLibrary("USER32")
> GDI32 := LoadLibrary("GDI32")
> COMCTL32 := LoadLibrary("COMCTL32")
> KERNEL32 := LoadLibrary("Kernel32")
> WINSPOOL := LoadLibrary("WINSPOOL.DRV")
> WINMM := LoadLibrary("WINMM")
> RETURN
>
> EXIT PROCEDURE FreeLibs
> FreeLibrary(USER32)
> FreeLibrary(GDI32)
> FreeLibrary(COMCTL32)
> FreeLibrary(KERNEL32)
> FreeLibrary(WINSPOOL)
> FreeLibrary(WINMM)
> RETURN
>
> // MCI
>
> #define MCIERROR DWORD
> #define MCIDEVICEID UINT
>
> IMPORT WINMM FUNCTION BOOL mciExecute(LPCSTR cCmd ) // obsolete
> IMPORT WINMM FUNCTION BOOL mciSendStringA(LPCSTR lpstrCommand,
> LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback) AS
> mciSendString
> IMPORT WINMM FUNCTION BOOL sndPlaySoundA(LPCSTR pszSound, UINT
> fuSound) AS sndPlaySound
> IMPORT WINMM FUNCTION MCIERROR mciSendCommandA(MCIDEVICEID mciId, UINT
> uMsg, DWORD dwParam1, DWORD dwParam2) AS mciSendCommand
> IMPORT WINMM FUNCTION MCIDEVICEID mciGetDeviceIDA(LPCSTR pszDevice) AS
> mciGetDeviceID
> IMPORT WINMM FUNCTION MCIDEVICEID mciGetDeviceIDFromElementIDA(DWORD
> dwElementID, LPCSTR lpstrType ) AS mciGetDeviceIDFromElementID
> IMPORT WINMM FUNCTION BOOL mciGetErrorStringA(MCIERROR mcierr,
> LPSTR pszText, UINT cchText) AS mciGetErrorString
>
> // SPOOLER
>
> IMPORT WINSPOOL FUNCTION BOOL ClosePrinter( HANDLE hPrinter )
> IMPORT WINSPOOL FUNCTION BOOL EndDocPrinter(HANDLE hPrinter)
> IMPORT WINSPOOL FUNCTION BOOL EndPagePrinter(HANDLE hPrinter)
>
> También lo puedes hacer sin comandos:
>
> function sndPlaySoundA( pszSound,fuSound )
>
> STATIC c hLib
> STATIC nProcAddr
>
> IF nProcAddr == NIL
> hLib :=Loadlibrary( "WINMM" )
> nProcAddr :=GetProcAddress( hLib, "sndPlaySoundA" )
> ENDIF
>
> Return CallDLL( hLib, nProcAddr,, 8, 10, pszSound, -3, fuSound )
>
> // CallDll( hInstDLL, pFunctAddr, nFlags, nRetType, nParmType1,;
> // xParm1, nParmType2, xParm2, nParmTypeN, xParmN)
>
> Un saludo,
>
>
> "José R.Castro" <
JRCPOLI@terra.es> escribió en el mensaje
> news:[email=
43423395@ozsrvnegro.ozlan.local...]
43423395@ozsrvnegro.ozlan.local...[/email]
>> Saludos:
>> Es posible actualmente cagar dinamicamente una DLL y usar sus clases,
>> si
>> es así lo puedo hacer con LoadLib o cual es la instrucción para hacerlo.
>>
>> José Ramón Castro Polinio
>>
>>
>>
>
>