FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Error Usando LoadLib32 o LoadLib - Retorno Puntero
Posts: 94
Joined: Thu May 11, 2006 10:00 PM

Error Usando LoadLib32 o LoadLib - Retorno Puntero

Posted: Mon Apr 01, 2024 03:38 PM
Buenas TArdes,

Realizando un update de los sistemas con
FWH 24_02 - Xhar 1.3.1 build 20240324 - Bcc770 (32)

He encontrado errores usando las DLL que funcionan en otra versi贸n.
El problema es que al cargar las DLL el handler retorna un Puntero , esto provoca que al llamar a las funciones internas de las DLL estas arrojen error.

He probado con los samples que vienen en FWH (Que usan LoadLibrary or LoadLib32) y hacen lo mismo , por ejemplo EMF.PRG
Error

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 04/01/24, 11:43:31
Error description: Error BASE/1099 Argument error: STR
Args:
[ 1] = P 0x77940000 ->>> Justamente este es el pointer del handle de la DLL
[ 2] = U
[ 3] = U

Comparando con versiones anteriores el handle retornaba un Numero y ahora es pointer
Ejemplo EMF.PRG con FWH 14
Code (fw): Select all Collapse
init procedure LoadGdi32

聽 聽hGDI32 = LoadLib32( "gdi32.dll" )
聽 聽 
聽 聽 MSGINFO(hGDI32)

return
Retorna: 2006188032
y funciona OK el PRG.

Les agadecer茅 cualquier aporte. Muchas Gracias,
Saludos,
GUSTAVO PREDIGER
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Error Usando LoadLib32 o LoadLib - Retorno Puntero

Posted: Tue Apr 02, 2024 04:59 AM

Estimado Gustavo,

Aseg煤rate de que est谩s usando el fichero DLL.ch de FWH m谩s reciente ya que este fichero ahora realiza automaticamente la conversi贸n de puntero a n煤mero largo

Busca por si tienes alguna versi贸n m谩s antigua de DLL.ch y b贸rrala

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 94
Joined: Thu May 11, 2006 10:00 PM

Re: Error Usando LoadLib32 o LoadLib - Retorno Puntero

Posted: Thu Apr 04, 2024 12:50 PM
Hola Anotnio!

Muchas Gracias por la respuesta.

Lo he solucionado creando un funci贸n y conviertiendo el puntero. Ha funcioando OK
Lo dejo aqu铆.. Saludos!
Code (fw): Select all Collapse
*-------------------------------------------------------------------------------------------------------------------
* Conversor de Pointer a Numero para DLLs LoadLib desde Fivewin 24_02
*-------------------------------------------------------------------------------------------------------------------
FUNCTION LoadLib24 (cLib)

LOCAL nHand

DEFAULT cLib:=""

IF !FILE(cLib)
聽 聽 MSGALERT("Libreria: "+cLib+" No Cargada","Atenci贸n")
聽 聽 RETURN(0)
ENDIF

nHand 聽:=LoadLib32( cLib)
*nHand 聽:= LoadLibrary( cLib )
IF ValType( nHand ) == "P"
聽 聽 nHand = PtrToNum( nHand )
ENDIF
IF Abs( nHand ) <= 32
聽 聽MsgStop( "No es Posible Cargar "+cLib,"Atenci贸n" )
ENDIF

RETURN(nHand)
GUSTAVO PREDIGER
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: Error Usando LoadLib32 o LoadLib - Retorno Puntero

Posted: Thu Apr 04, 2024 01:09 PM
Muy bien! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion