Diferencia entre GetProc32 y GetProcAddress ?
Posted: Thu Jun 15, 2006 12:11 pm
Antonio, estoy haciendo pruebas con dos versiones distintas de Cristal Reports (TCRW y TCRW32) en el segundo aparece GetProc32, pero me da un error en esa funcion. Parece por logica que esta funcion "GetProc32" sea exlusivo de 32-bit, pero me genera un error cuando lo ejecuto, en cambio si con los mismos argumentos utilizo GetProcAddress funciona a la perfección incluso veo que hace la discriminacion entre 16-bit y 32-bit (al seleccionar la libreria). ¿ A que es debido el error ?, ¿ Que funcion tengo que utilizar o falta algun argumento ?
En TCRW:
En TCRW32:
En TCRW:
- Code: Select all Expand view
METHOD PEOPEN_()
LOCAL cFarProc
LOCAL cFunc := "PEOpenEngine"
cFarProc := GetProcAddress( ::hDLL, cFunc, .T., LONG )
::lError := ( CallDll( cFarProc ) == FALSE )
IF ::lError
MsgAlert( "Could not open the Print Engine!" + CRLF + ::PeErrorText())
ENDIF
RETURN ! ::lError
En TCRW32:
- Code: Select all Expand view
METHOD PEOPEN_()
LOCAL cFarProc
LOCAL cFunc := "PEOpenEngine"
IF ::l32
cFarProc := GetProc32( ::hDLL, cFunc, .T., LONG )
::lError := ( CallDll32( cFarProc ) == FALSE )
ELSE
cFarProc := GetProcAddress( ::hDLL, cFunc, .T., _INT )
::lError := ( CallDll( cFarProc ) == FALSE )
ENDIF
IF ::lError
MsgAlert( "No puedo abrir el reporte.!" + CRLF + ::PeErrorText())
ENDIF
RETURN ! ::lError