Page 1 of 1

Configurando xEdit

Posted: Fri Oct 20, 2017 5:46 pm
by ddupre
Estimados,
Llevo tiempo queriendo utilizar xEdit para trabajar sobre una aplicación que lleva mas de 20 años andando y está en modo consola.
Cada tanto retomo el tema y me choco con dificultades al configurar el entorno.
Con la noticia del advenimiento del xEdit 5.3 y sus grandes novedades, me puse "las pilas" y ya tengo compilando correctamente "casi todo".
Encontrando ayuda en mensajes antiguos del foro, fui resolviendo todos los inconvenientes, pero me falta uno.

Con el tiempo, he incluido funcionalidades que creo (soy bastante ignorante en esto) las ha obtenido mi actual IDE de la carpeta "contrib" de Harbour, la cual no está presente en Xailer y pienso que es por eso que se dá el error. Mi última prueba fue copiar la carpeta "contrib" debajo de \Xailer5\hb32\, pero no funcionó.

Agradezco toda ayuda que me puedan dar.
Saludos.

En los adjunto envío el error y este es el entorno utilizado:

[ProgrammingEnvironment]
1=MacroVentas
[MacroVentas]
Default=.T.
Include=
Lib=
Libraries=
HBCompiler=Harbour3
HBDir=C:\Xailer5\hb32
HBDirBin=C:\Xailer5\hb32\Bin
HBDirInclude=C:\Xailer5\hb32\Include
HBDirLib=C:\Xailer5\hb32\Lib\Win\MinGW
HBFlags=/n
HBLibraries=+hbextern,+hbdebug,+hbvm,+hbrtl,+hblang,+hbcpage,-gtcgi,-gtpca,-gtstd,+gtwin,-gtwvt,-gtgui,+hbrdd,+hbuddall,+hbusrrdd,+rddntx,+rddcdx,+rddnsx,+rddfpt,-rddads,-ace32,+hbhsx,+hbsix,+hbmacro,+hbcplr,+hbpp,+hbcommon,+hbmainwin,+hbmxml,+mxml,+hbpcre,+hbwin,+hbmzip,+minizip,+hbzlib
CCompiler=MinGW
CDir=C:\Xailer5\hb32\comp\mingw
CDirBin=C:\Xailer5\hb32\comp\mingw\Bin
CDirInclude=C:\Xailer5\hb32\comp\mingw\Include
CDirLib=C:\Xailer5\hb32\comp\mingw\Lib
CFlags=-c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer -W -Wall -pipe -masm=intel
CLibraries=+crt2.o,+gcc\mingw32\4.7.1-dw2\crtbegin.o,+mingw32,+gcc\mingw32\4.7.1-dw2\gcc,+moldname,+mingwex,+msvcrt,+kernel32,+user32,+gdi32,+advapi32,+ws2_32,+winspool,+comctl32,+comdlg32,+shell32,+uuid,+ole32,+oleaut32,+oledlg,+mpr,+winmm,+mapi32,+imm32,+msimg32,+odbc32,+wininet,+version
StripSymbols=.T.
RCDefault=.F.
RC=C:\Xailer5\hb32\comp\mingw\Bin\windres.exe
RCFlags=-Ores -o%FO -i%FI
LinkFlags=-O3 -s
StandardIcons=.F.
LibFlags=

Re: Configurando xEdit

Posted: Mon May 21, 2018 1:22 am
by ddupre
Estimados,
He avanzado bastante con la configuración de XEdit (la cual retomo cada tanto) pero me queda algo por resolver y no lo logro.
Compilando con mi otro IDE (hbIDE) todo funciona bien, pero debe haber alguna diferencia entre las lib que enlazo con uno y con otro que en XEdit no se resuelven tres funciones.
La salida de la compilación es esta:

Compilando EFACTURA.PRG...
Enlazando MACROVTA.exe...
C:/MVENTAS/Obj/EFACTURA.o:(.data+0x1368): undefined reference to `HB_FUN_DLLLOAD'
C:/MVENTAS/Obj/EFACTURA.o:(.data+0x1388): undefined reference to `HB_FUN_DLLCALL'
C:/MVENTAS/Obj/EFACTURA.o:(.data+0xe68): undefined reference to `HB_FUN_DLLUNLOAD'
C:\Xailer5\hb32\comp\mingw\Bin\ld: C:/MVENTAS/Obj/EFACTURA.o: bad reloc address 0xf in section `.text.startup'
C:\Xailer5\hb32\comp\mingw\Bin\ld: final link failed: Invalid operation
1 Files, 0 Warnings, 5 Errors
Tiempo de compilación: 0.62s Tiempo de enlazado: 0.81s Tiempo total: 1.53s

El código donde utilizo estas funciones es:
FUNCTION QRCODE_LASER(cDatos)
local nHCBB, cFile, h1

cFile := "\mventas\reportes\qrcode"+GetEnv('pc') + ".bmp"

nHCBB := dllload("CBBQR.dll")
if Empty(nHCBB)
mensaje('No se logr¢ cargar la libreria',24,dato)
return ' '
endif
//Genera el codigo bidemensional
h1 := dllcall(nHCBB,DC_CALL_STD,"FullQRCode",.T.,.F.,RGB(255,255,255),RGB(0,0,0),cDatos,1,4,5,5,200,200,cFile)
if .not. (h1 == 0)
mensaje('No se puede generar codigo QR',24,dato)
return ' '
endif
dllunload(nHCBB)
return cFile

He probado otras formas de llamar una dll, que he encontrado buscando referencias en la web pero el resultado de la compilación es "peor".

Por ejemplo:
nHCBB := loadlibrary("CBBQR.dll")
freelibrary(nHCBB)
o
nHCBB := libload("CBBQR.dll")
libfree(nHCBB)

Sinceramente estoy con muchas ganas de pasarme a XEdit pero cada vez que intento "me tranco con algo" y así va pasando el tiempo....

Cualquier idea que me puedan aportar será bienvenida.

Muchas gracias
Daniel

Re: Configurando xEdit

Posted: Wed May 23, 2018 10:17 pm
by Hurricane
Olá Daniel,

certas funções dependem de LIBs extras, então requer que você adicione no IDE.
DLLLOAD depende da LIB hbxpp, adicione no IDE.

Se você usa o Xailer, também poderá usá-lo para compilar aplicações console (script hbp).

ddupre wrote:...
He avanzado bastante con la configuración de XEdit (la cual retomo cada tanto) pero me queda algo por resolver y no lo logro.
Compilando con mi otro IDE (hbIDE) todo funciona bien, pero debe haber alguna diferencia entre las lib que enlazo con uno y con otro que en XEdit no se resuelven tres funciones.
La salida de la compilación es esta:

C:/MVENTAS/Obj/EFACTURA.o:(.data+0x1368): undefined reference to `HB_FUN_DLLLOAD'
Sinceramente estoy con muchas ganas de pasarme a XEdit pero cada vez que intento "me tranco con algo" y así va pasando el tiempo....
...

Re: Configurando xEdit

Posted: Sun May 27, 2018 12:45 am
by ddupre
Hola Hurricane,

Muchas gracias.
Agregué la lib y se resolvió el problema.
Ahora se presenta otro y seguramente sea por algo parecido pero no sé que lib me está faltando dado que comparé las que utilizo al compilar con HBIde y con XEdit y "aparentemente" son las mismas.

Así comienza la salida de la compilación cuando aparece el error

...
Compilando ERRORSYS.PRG...
Compilando FastRepH.prg...
Compilando class_tiploglocal.prg...
Compilando Mventas.rc...
Enlazando MACROVTA.exe...
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x114): undefined reference to `BIO_f_nbio_test'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x124): undefined reference to `BIO_new'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x171): undefined reference to `BIO_s_null'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x181): undefined reference to `BIO_s_file'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x191): undefined reference to `BIO_s_mem'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x1a1): undefined reference to `BIO_s_socket'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x1b1): undefined reference to `BIO_s_connect'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x1c1): undefined reference to `BIO_s_accept'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x1d1): undefined reference to `BIO_s_fd'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x1e1): undefined reference to `BIO_s_bio'
...
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x2211): undefined reference to `ERR_load_BIO_strings'
C:\Xailer5\hb32\comp\mingw\Bin\ld: C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o): bad reloc address 0x0 in section `.rdata'
C:\Xailer5\hb32\comp\mingw\Bin\ld: final link failed: Invalid operation
141 Files, 0 Warnings, 76 Errors
Tiempo de compilación: 53.91s Tiempo de enlazado: 1.28s Tiempo total: 55.26s


Muchas gracias por el Tip de Xailer, no sabía que lo podía utilizar para programar en modo consola. Actualmente tengo Xailer 5.0.1 y lo utilizo con proyectos Win, pero sabiendo eso, voy a estudiar como pasar mis proyectos consola a Xailer.

¿Conoce alguna documentación donde se pueda aprender eso?

Muchas Gracias
Un saludo
Daniel

Re: Configurando xEdit

Posted: Sun May 27, 2018 8:31 am
by Hurricane
olá Daniel,
Adicione a lib libeay32

Eu testei usando uma das chamadas
hbmk2 myTest -lhbssl -llibeay32

ddupre wrote:C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x114): undefined reference to `BIO_f_nbio_test'
C:/Xailer5/hb32/Lib/Win/MinGW/libhbssl.a(bio.o):bio.c:(.text+0x124): undefined reference to `BIO_new'
...

Re: Configurando xEdit

Posted: Sun May 27, 2018 9:42 pm
by ddupre
Hola Hurricane,

Muchas gracias por su ayuda.
He agregado la lib libeay32 y luego de compilar noté que también debía agregar libssleay32 (ninguna estaba en la carpeta \xailer5\hb32\lib\win\mingw) y así con otras mas, de echo yo tengo las libeay32.dll, libssleay32.dll en la carpeta de mi .exe.

Creo que todas esas lib hay que agregarlas "a mano" porque no encontré donde poner los hbcr.hbc, hbnf.hbc, xhb,hbc y hbssl.hbc en la configuración del entorno o en las propiedades del proyecto.

En las propiedades del proyecto en HBIde tengo lo siguiente:

# hbmk2 Flags
#
-hbexe
-oBIN/MACROVTA
-icon=macrosistemas.ico
-inc
-w
#-b
-lclipwks

hbct.hbc
hbnf.hbc
xhb.hbc
hbssl.hbc

# GT Requested
#
-gtwin

# Compilable Sources
#
-3rd=hbide_file=\mventas\include\MACROVTA.CH
PRG/MENU0000.PRG
PRG/ACHOICE.PRG
PRG/BASE1000.PRG
...
A caso ¿es posible poder utilizar los .hbc en XEdit,? luego de leer la ayuda de Xailer lamentablemente no he encontrado documentación que explique como configurar otras opciones de compilación que no están disponibles en el entorno de programación o en las propiedades del proyecto. Tal ves usted a algún otro colega, ya haya pasado por esta tarea de poner "a punto" el "entorno de trabajo con XEdit" y sepa dónde se puede leer sobre este tema.

Nuevamente muchas gracias por su tiempo y ayuda
Un saludo
Daniel

Re: Configurando xEdit

Posted: Mon May 28, 2018 12:12 am
by Hurricane
Hola Daniel,

Imagino que não.
ddupre wrote:A caso ¿es posible poder utilizar los .hbc en XEdit?

Acho que você esta usando projeto/HBP, correto? como informei, no Xailer você pode compilar projetos usando este script, então não precisaria adicionar nenhuma LIB no IDE.
LIBs, HBC, etc... é no próprio script HBP.

Se ocorrer algum problema de compilação, provavelmente falta configurar as pastas MinGW/Harbour (Tools->Options->Directories), adicionando pastas extras que não são solicitadas quando você compila com o Xailer/gráfico.

Re: Configurando xEdit

Posted: Mon May 28, 2018 3:26 pm
by ddupre
Hola Hurricane,

Acho que você esta usando projeto/HBP, correto? como informei, no Xailer você pode compilar projetos usando este script, então não precisaria adicionar nenhuma LIB no IDE.
LIBs, HBC, etc... é no próprio script HBP.

Si es correcto, el HPB que le mostré en mi mensaje anterior es el que generó HBIde y el que él utiliza para compilar.
Recuerdo que me comentó que con Xailer puedo compilar en modo consola, pero hasta ayer no me daba cuenta como hacerlo, (Archivo->Abrir proyecto y cambiar el "tipo de proyecto" a "Proyectos de Harbour) finalmente logré compilar correctamente con XEdit 5.0.4 y con Xailer 5.0.1, ahora bien, encuentro una diferencia entre ambos que es justamente la que me entusiasmó a utilizar XEdit, y es que compilando con un hbp puedo utilizar XVC, pero con Xailer no, al menos con la versión que yo tengo cuando abro un proyecto hpb, no aparecen la opciones de XVC.

Muchas gracias por su tiempo y ayuda.
Saludos