DLL.CH y LoadLibrary error

DLL.CH y LoadLibrary error

Postby devtuxtla » Tue Mar 28, 2017 7:20 pm

Hola Antonio

Analizando el problema de los DLL, me encuentro que la funcion LoadLibrary regresa un valor como apuntador del tipo 0xFDB0000
Cuando este valor es analizado por la funcion ABS genera ERROR...

este es parte del codigo del dll.ch

Code: Select all  Expand view

#xcommand DLL [<static:STATIC>] FUNCTION <FuncName>( [ <uParam1> AS <type1> ] ;
                                                     [, <uParamN> AS <typeN> ] ) ;
             AS <return> [<pascal:PASCAL>] [ FROM <SymName> ] LIB <*DllName*> ;
       => ;
          [<static>] function <FuncName>( [NOREF(<uParam1>)] [,NOREF(<uParamN>)] ) ;;
             local _hDLL := If( ValType( <DllName> ) == "N", <DllName>, LoadLibrary( <(DllName)> ) ) ;;
             local uResult ;;
             local cFarProc ;;
             if Abs( _hDLL ) > 32 ;;  <------- AQUI GENERA EL ERROR
                cFarProc = GetProcAdd( _hDLL,;
                If( [ Empty( <SymName> ) == ] .t., <(FuncName)>, <SymName> ),;
                [<.pascal.>], <return> [,<type1>] [,<typeN>] ) ;;
                uResult = FWCallDLL( cFarProc [,<uParam1>] [,<uParamN>] ) ;;
                If( ValType( <DllName> ) == "N",, FreeLibrary( _hDLL ) ) ;;
             else ;;
                MsgAlert( "Error code: " + LTrim( Str( _hDLL ) ) + " loading " + ;
                If( ValType( <DllName> ) == "C", <DllName>, Str( <DllName> ) ) ) ;;
             end ;;
          return uResult
 


Alguna sugerencia para corregir este problema?

Saludos

fwh17.02
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: DLL.CH y LoadLibrary error

Postby Antonio Linares » Tue Mar 28, 2017 9:30 pm

parece que estás enlazando una función LoadLibrary() que no es la de FWH
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41321
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: DLL.CH y LoadLibrary error

Postby carlos vargas » Tue Mar 28, 2017 9:43 pm

ok, existe un problema, tanto xharbour como harbour, tiene las funciones LoadLibrary nativas, estas retorna un puntero si la carga fue exitosa,
en fwh, existe esa misma funcion pero esta retorna un entero, y esto es un problema si se altera de alguna forma la construccion de el ejecutable y
por alguna razon la funcion que se esta linkeando en el exe es la de xharbour o harbour, ya que en esa instruccion

if Abs( _hDLL ) > 32

la funcion Abs fallara, ya que ella espera un entero, y puede que sea un puntero.

tienes que asegurarte que se este cargando la libreria de fwh en primer lugar, antes de las de [x]Harbour, para descartar este problema.

ahora tu dices que te da error en esa linea exactamente, muestra el log, por que hi se muestra de que tipo en el parametro recibido por la funcion Abs, y ahi salimos de dudas.

salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1688
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: DLL.CH y LoadLibrary error

Postby devtuxtla » Wed Mar 29, 2017 3:26 am

Hola Antonio / carlos

Gracias por contestar

Para resolver este problema de la DLL's di un paso a tras...

Generé la aplicacion con la version de FWH17.02 , xHarbour 1.2.3. (Build 20161218) y BCC 7.0

Y problema resuelto... los metodos de las DLL's se ejecutan bien...

Tal vez es necesario esperar una poco antes de usar BCC 7.2, aun que no se si es quien causa el problema.

Saludos
Visite Chiapas, el paraiso de México.
devtuxtla
 
Posts: 392
Joined: Tue Jul 29, 2008 1:55 pm

Re: DLL.CH y LoadLibrary error

Postby Antonio Linares » Wed Mar 29, 2017 8:37 am

Como te ha indicado Carlos:

tienes que asegurarte que se este cargando la libreria de fwh en primer lugar, antes de las de [x]Harbour, para descartar este problema


Esa es la razón. Revísalo
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41321
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: richard-service and 8 guests

cron