Otra vez problemas con LOADLIBRARY (Solucionado)

Otra vez problemas con LOADLIBRARY (Solucionado)

Postby sjingo » Tue Jul 07, 2015 4:46 pm

saludos estimados amigos.

Hace algún tiempo tuve un problema similar en una transición. Hoy he intentado de todo lo que se ha dicho en el foro pero no doy con la solución.

Estoy intentando cambiar a Harbour cuya versión es la de 20131007, para usarlo con bcc582 + fwh build Marzo2010.

He superado algunos errores que se presentaron, pero no puedo con el siguiente error:

c:\Borland\bcc582\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_HB_FUN_LOADLIBRARY' referenced from C:\FWH\LIB\FIVEH.LIB|HARBOUR
Error: Unresolved external '_HB_FUN_FREELIBRARY' referenced from C:\FWH\LIB\FIVEH.LIB|HARBOUR

He revisado el archivo source FHW/source/function/harbour.prg y en verdad hace la llamada a esta función, que no la encuentra:
Code: Select all  Expand view
//----------------------------------------------------------------------------//

function LoadLib32( cDLL )

return LoadLibrary( cDLL )

//----------------------------------------------------------------------------//

function FreeLib32( hDLL )

return FreeLibrary( hDLL )

//----------------------------------------------------------------------------//


Me he metido en este lío, debido a que anteriormente tenía problemas con la subida de archivos binarios desde un archivo de imagen hacia una tabla Mysql, que tronaba al momento de asignar el archivo leído hacia el campo BLOB mediante ADO. Por un tiempo lo dejé con ese problema. Pero hoy necesito que funcione como lo hacía antes de mi última actualización hace 5 años.

Gracias por cualquier ayuda.
Last edited by sjingo on Thu Jul 09, 2015 1:38 am, edited 1 time in total.
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Otra vez problemas con LOADLIBRARY

Postby cnavarro » Tue Jul 07, 2015 7:03 pm

Mira este post

viewtopic.php?f=21&t=19877&p=105315&hilit=loadlibrary#p105315

Además, creo que utilizar una version de Harbour posterior a tu version de Fivewin no sé si es la mejor opcion.
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Otra vez problemas con LOADLIBRARY

Postby sjingo » Tue Jul 07, 2015 7:53 pm

Cristóbal

Ya probé esa solución, pero me salía el error de que no encuentra la variable LONG o algo así. Y creo que me he leído casi todos los posts relacionados, y nada.

Alguna otra idea?
Gracias
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Otra vez problemas con LOADLIBRARY

Postby cnavarro » Tue Jul 07, 2015 10:38 pm

Puedes poner aqui el buildh.bat o lo que utilices para generar tu aplicacion?

Tambien has de poner los includes necesarios despues del pragma
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Otra vez problemas con LOADLIBRARY

Postby sjingo » Tue Jul 07, 2015 11:46 pm

Este es el contenido del archivo rmk.

#Borland make sample, (c) FiveTech Software 2005

HBDIR=c:\harb
BCDIR=c:\Borland\bcc582
FWDIR=c:\fwh

#change these paths as needed
.path.OBJ = .\obj
.path.PRG = .\
.path.CH = $(FWDIR)\include;$(HBDIR)\include
.path.C = .\c
.path.rc = .\rc

#important: Use Uppercase for filenames extensions, in the next two rules!

PRG = \
gpicar.PRG \
browtabla.PRG \
vehic.PRG \
repfecha.PRG \
brwactiv.PRG \
browrep.PRG \
brwinsumo.PRG \
xbrowse.PRG


PROJECT : gpicar.exe

gpicar.exe : $(PRG:.PRG=.OBJ) $(C:.C=.OBJ) gpicar.res
echo off
echo $(BCDIR)\lib\c0w32.obj + > b32.bc
echo obj\gpicar.obj obj\browtabla.obj obj\vehic.obj obj\repfecha.obj obj\brwactiv.obj obj\browrep.obj obj

\brwinsumo.obj obj\xbrowse.obj, + >> b32.bc
echo gpicar.exe, + >> b32.bc
echo gpicar.map, + >> b32.bc
echo $(FWDIR)\lib\FiveH.lib $(FWDIR)\lib\FiveHC.lib + >> b32.bc
echo $(HBDIR)\lib\hbwin.lib + >> b32.bc
echo $(HBDIR)\lib\hbrtl.lib + >> b32.bc
echo $(HBDIR)\lib\hbvm.lib + >> b32.bc
echo $(HBDIR)\lib\gtgui.lib + >> b32.bc
echo $(HBDIR)\lib\hblang.lib + >> b32.bc
echo $(HBDIR)\lib\hbmacro.lib + >> b32.bc
echo $(HBDIR)\lib\hbrdd.lib + >> b32.bc
echo $(HBDIR)\lib\rddntx.lib + >> b32.bc
echo $(HBDIR)\lib\rddcdx.lib + >> b32.bc
echo $(HBDIR)\lib\rddfpt.lib + >> b32.bc
echo $(HBDIR)\lib\hbsix.lib + >> b32.bc
echo $(HBDIR)\lib\hbdebug.lib + >> b32.bc
echo $(HBDIR)\lib\hbcommon.lib + >> b32.bc
echo $(HBDIR)\lib\hbpp.lib + >> b32.bc
echo $(HBDIR)\lib\hbziparc.lib + >> b32.bc
echo $(HBDIR)\lib\hbmzip.lib + >> b32.bc
echo $(HBDIR)\lib\hbzlib.lib + >> b32.bc
echo $(HBDIR)\lib\minizip.lib + >> b32.bc
echo $(HBDIR)\lib\png.lib + >> b32.bc
echo $(HBDIR)\lib\hbcpage.lib + >> b32.bc
echo $(HBDIR)\lib\hbcplr.lib + >> b32.bc
echo $(HBDIR)\lib\hbusrrdd.lib + >> b32.bc
echo $(HBDIR)\lib\hbct.lib + >> b32.bc
echo $(HBDIR)\lib\xhb.lib + >> b32.bc


rem Uncomment these two lines to use Advantage RDD
rem echo $(HBDIR)\lib\rddads.lib + >> b32.bc
rem echo $(HBDIR)\lib\Ace32.lib + >> b32.bc

echo $(BCDIR)\lib\cw32.lib + >> b32.bc
echo $(BCDIR)\lib\uuid.lib + >> b32.bc
echo $(BCDIR)\lib\import32.lib + >> b32.bc
echo $(BCDIR)\lib\ws2_32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\odbc32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\nddeapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\iphlpapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\msimg32.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\psapi.lib + >> b32.bc
echo $(BCDIR)\lib\psdk\rasapi32.lib, >> b32.bc
rem echo $(BCDIR)\lib\psdk\gdiplus.lib + >> b32.bc
rem echo $(BCDIR)\lib\psdk\shell32.lib + >> b32.bc

IF EXIST gpicar.res echo gpicar.res >> b32.bc
$(BCDIR)\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
del b32.bc

.PRG.OBJ:
$(HBDIR)\bin\harbour $< /N /W /Oobj\ /I$(FWDIR)\include;$(HBDIR)\include
$(BCDIR)\bin\bcc32 -c -tWM -I$(HBDIR)\include -oobj\$& obj\$&.c


.C.OBJ:
echo -c -tWM -D__HARBOUR__ -DHB_API_MACROS > tmp
echo -I$(HBDIR)\include;$(FWDIR)\include >> tmp
$(BCDIR)\bin\bcc32 -oobj\$& @tmp $&.c
del tmp
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Otra vez problemas con LOADLIBRARY

Postby sjingo » Wed Jul 08, 2015 3:26 am

El Harbour con el que últimamente estuve trabajando era la siguiente:
Harbour 2.0.0 (Rev. 13372)
Copyright (c) 1999-2010, http://www.harbour-project.org/

Probé a usar la siguiente:
Harbour 3.0.0 (Rev. 16951)
Copyright (c) 1999-2011, http://harbour-project.org/

No da ningún error, genera bien el executable, pero se mantiene el mismo problema que del anterior, es decir tengo problemas al grabar imágenes en un campo blob

En cambio con esta última ;
Harbour 3.2.0dev (r1307082134)
Copyright (c) 1999-2013, http://harbour-project.org/

Me dan los errores que originalmente comenté al iniciar este post.

En definitiva lo que intentaba probar es que el origen del fallo en la grabación de las imágenes podría ser a causa de algún error o falta de compatibilidad entre FWH 10.3 y el Harbour, e incluso a lo mejor con bcc582.
Antes de usar FWH 10.3, todo funcionaba OK, se me subían sin error las imágenes a la tabla. Ya son muchos años atrás que no recuerdo exactamente que versión de FWH usaba (creo que era 9 ), no se ni la versión de harbour, y me imagino que usaba bcc55.

Este post lo voy a dar por cerrado, porque voy a usar la versión 3.0, que no da los errores y es más actual que la que estaba usando. Abriré un nuevo post para que me ayuden a buscar el origen de mi verdadera preocupación.

Gracias por su tiempo
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Otra vez problemas con LOADLIBRARY

Postby Antonio Linares » Wed Jul 08, 2015 9:46 am

Marcelo,

Puedes añadir estas funciones a tu PRG principal:

Code: Select all  Expand view

#pragma BEGINDUMP

#include <Windows.h>
#include <hbapi.h>
 
//----------------------------------------------------------------------------//
 
HB_FUNC( FREELIBRARY ) // ( hDll ) --> nil
{
   #ifndef _WIN64
      hb_retnl( FreeLibrary( ( HINSTANCE ) hb_parnl( 1 ) ) );
   #else
      hb_retnl( FreeLibrary( ( HINSTANCE ) hb_parnll( 1 ) ) );
   #endif      
}
 
//---------------------------------------------------------------------------//
 
HB_FUNC( LOADLIBRARY ) // ( cDllName ) --> hDll
{
   #ifndef UNICODE
      #ifndef _WIN64
         hb_retnl( ( LONG ) LoadLibrary( hb_parc( 1 ) ) );
      #else
         hb_retnll( ( LONGLONG ) LoadLibrary( hb_parc( 1 ) ) );
      #endif
   #else
      LPWSTR pW = AnsiToWide( ( char * ) hb_parc( 1 ) );  
      hb_retnl( ( LONG ) LoadLibrary( pW ) );
      hb_xfree( pW );
   #endif  
}

#pragma ENDDUMP
 
regards, saludos

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

Re: Otra vez problemas con LOADLIBRARY

Postby sjingo » Wed Jul 08, 2015 10:19 pm

Antonio
He añadido las funciones y se ha solucionado en parte, ahora ya se crea la aplicación aunque con algunos warnings que dice:

.\xbrowse.PRG(391) Warning W0001 Ambiguous reference 'SUPER'

Pero ahora al ejecutar me da error indicando que no existe la variable SUPER, y termina el programa. Luego lo que hice fue comentar en el XBROWSE lo siguiente:
Code: Select all  Expand view

//#ifdef __XPP__
   #define Super ::TControl
   #define New   _New
//#endif
 


Dejando sólo la que hace referencia a Super y al tratar de compilar de nuevo me salen como 35 errores que dicen:

.\xbrowse.PRG(419) Error E0030 Syntax error "syntax error at 'SELF'"

Qué debo hacer?
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Re: Otra vez problemas con LOADLIBRARY

Postby sjingo » Wed Jul 08, 2015 11:50 pm

He eliminado el #ifdef que había y he reemplazado todos los Super del xbrowse por ::Super y con esto se SOLUCIONÓ, el problema del LOADLIBRARY y FREELIBRARY. y se genera la aplicación usando Harbour 3.2 + FW10.3 + BCC582. Pero continúa el problema que me tiene loco, siguen los problemas al cargar las imágenes, que lo estoy tratando en otro post.

Mil gracias
Marcelo Jingo
User avatar
sjingo
 
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 87 guests