Recent

Author Topic: Problema con libreria dinamica  (Read 25848 times)

Leledumbo

  • Hero Member
  • *****
  • Posts: 8744
  • Programming + Glam Metal + Tae Kwon Do = Me
Re: Problema con libreria dinamica
« Reply #15 on: July 07, 2021, 02:24:11 pm »
This is how you debug a LoadLibrary that returns NilHandle:
Code: Pascal  [Select][+][-]
  1. uses
  2.   dynlibs;
  3. var
  4.   l: THandle;
  5. begin
  6.   l := LoadLibrary('./libpyafipws.so');
  7.   if l = NilHandle then
  8.     WriteLn(GetLoadErrorStr)
  9.   else
  10.     UnloadLibrary(l);
  11. end.
  12.  
which in your provided binary, displays:
Quote
./libpyafipws.so: undefined symbol: PyClass_Type
Googling around, it seems that PyClass_Type is only known by Python 2, not Python 3, which is logical because Python 3 is the default Python version on my Linux installation.
« Last Edit: July 07, 2021, 02:28:16 pm by Leledumbo »

hexxa

  • New Member
  • *
  • Posts: 26
Re: Problema con libreria dinamica
« Reply #16 on: July 14, 2021, 10:46:34 pm »
Gracias Fred por tu predisposicion.

Saludos

hexxa

  • New Member
  • *
  • Posts: 26
Re: Problema con libreria dinamica
« Reply #17 on: July 18, 2021, 02:20:46 am »
Gracias Leledumbo, yo tengo instalado Python 2.7.18. Estuve googleando y no encuentro una soluciòn, alguna idea?

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #18 on: July 18, 2021, 03:19:24 am »
En mi sistema PyClass_Type está en libboost_python27 y que está aquí :

/usr/lib/x86_64-linux-gnu/libboost_python27.so.1.67.0

Code: Bash  [Select][+][-]
  1. fred@fiens ~> nm -D /usr/lib/x86_64-linux-gnu/libboost_python27.so.1.67.0 | grep PyClass_Type
  2.  
  3.                      U PyClass_Type  // result OK

Es posible que deba crear un enlace simbólico: libboost_python27.so con libboost_python27.so.1.67.0

[EDIT]

Puede ser instalando el paquete "deb" :

Code: Bash  [Select][+][-]
  1. sudo apt-get install libboost-python-dev
« Last Edit: July 19, 2021, 03:02:10 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #19 on: July 19, 2021, 02:56:17 am »
¡El último!

¡Lo tengo!

Con las fuentes https://github.com/reingart/pyafipws/tree/master/src

Compilé como este:

Code: Bash  [Select][+][-]
  1. gcc -c -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -I/usr/include/boost/python libpyafipws.c -o libpyafipws.o -fPIC -shared

Code: Bash  [Select][+][-]
  1. ld -lboost_python27 -lpython2.7 -o libpyafipws.so libpyafipws.o -shared -fPIC

Y funciona con loadlibrary().

Adjunto el zip de la librería para Linux 64 bit.

Fre;D
« Last Edit: July 19, 2021, 03:00:21 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

hexxa

  • New Member
  • *
  • Posts: 26
Re: Problema con libreria dinamica
« Reply #20 on: July 21, 2021, 12:45:17 pm »
Hola Fred Vs, gracias por tu ayuda, logre compilar la libreria y que la cargue sin errores aunque no estoy seguro de haber hecho lo correcto.
Lo primero que hice fue instalar libboost-python-dev ya que no lo tenia, pero me instalo la version 3.8.
Para que compile sin errores hice lo sgte:
Code: Bash  [Select][+][-]
  1.  gcc -c -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -I/usr/include/boost/python libpyafipws.c -o libpyafipws.o -fPIC -shared
Code: Bash  [Select][+][-]
  1.  ld -lboost_python38 -lpython3.8 -lpython2.7 -o libpyafipws.so libpyafipws.o -shared -fPIC

Espero sea correcto, voy a empezar con las pruebas de uso de la librerìa.
Gracias nuevamente, me has dado una mano enorme!!
Saludos

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #21 on: July 21, 2021, 02:30:29 pm »
Hola Fred Vs, gracias por tu ayuda, logre compilar la libreria y que la cargue sin errores aunque no estoy seguro de haber hecho lo correcto.
Lo primero que hice fue instalar libboost-python-dev ya que no lo tenia, pero me instalo la version 3.8.
Para que compile sin errores hice lo sgte:
Code: Bash  [Select][+][-]
  1.  gcc -c -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -I/usr/include/boost/python libpyafipws.c -o libpyafipws.o -fPIC -shared
Code: Bash  [Select][+][-]
  1.  ld -lboost_python38 -lpython3.8 -lpython2.7 -o libpyafipws.so libpyafipws.o -shared -fPIC

Espero sea correcto, voy a empezar con las pruebas de uso de la librerìa.
Gracias nuevamente, me has dado una mano enorme!!
Saludos

Hola!

¿Estás seguro de que no tienes libboost_python27?

Aqui:

Code: ASM  [Select][+][-]
  1. fred@fiens ~> locate libboost_python27
  2. /usr/lib/x86_64-linux-gnu/libboost_python27.a
  3. /usr/lib/x86_64-linux-gnu/libboost_python27.so
  4. /usr/lib/x86_64-linux-gnu/libboost_python27.so.1.67.0

Pero si funciona con libboost_python38, por qué no.

Atención, me parece que la liberia se usa STDCALL para Linux (normalmente usamos CDECL para Linux).
Entonces tendrás que usar para "external" stdcall.

Fre;D
« Last Edit: July 21, 2021, 02:37:32 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

hexxa

  • New Member
  • *
  • Posts: 26
Re: Problema con libreria dinamica
« Reply #22 on: August 05, 2021, 12:31:18 pm »
Hola Fred vS, perdón por la demora en responder, recien puedo retomar este tema, efectivamente no tengo instalado libboost_python27.

Code: Bash  [Select][+][-]
  1. gustavo@gustavo-NB:~$ locate libboost_python
  2. /usr/lib/x86_64-linux-gnu/libboost_python38.a
  3. /usr/lib/x86_64-linux-gnu/libboost_python38.so
  4. /usr/lib/x86_64-linux-gnu/libboost_python38.so.1.71.0
  5. /usr/lib/x86_64-linux-gnu/cmake/boost_python-1.71.0/libboost_python-variant-shared-py3.8.cmake
  6. /usr/lib/x86_64-linux-gnu/cmake/boost_python-1.71.0/libboost_python-variant-static-py3.8.cmake
  7.  

El problema que tengo ahora es que al llamar a una funcion de la libreria me arroja una excepción de la clase 'External: SIGSEGV'.

Tengo definidas estas variables
Code: Pascal  [Select][+][-]
  1. type
  2.   TWSAA_CreateTRA = function (service: string; ttl: longint): string; stdcall;
  3.   TWSAA_SignTRA = function (tra: string; cert: string; pk: string): string; stdcall;
  4.   TWSAA_LoginCMS = function (tra: string): string; stdcall;
  5.  
  6. var
  7.   WSAA_CreateTRA : TWSAA_CreateTRA;
  8.   WSAA_SignTRA : TWSAA_SignTRA;
  9.   WSAA_LoginCMS : TWSAA_LoginCMS;
  10.  

y este codigo

Code: Pascal  [Select][+][-]
  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3.   ttl: longint;
  4. begin
  5.   PyAfipWs := LoadLibrary('./libpyafipws.so');
  6.  
  7.   if PyAfipWs = dynlibs.NilHandle then
  8.   begin
  9.     showmessage(GetLoadErrorStr);
  10.     exit
  11.   end;
  12.  
  13. // Generar un Ticket de Requerimiento de Acceso (TRA) para WSFEv1
  14.   ttl:= 36000; //tiempo de vida = 10hs hasta expiración
  15.   tra:= WSAA_CreateTRA('WSFEv1', ttl);
  16.  
  17. // Especificar la ubicacion de los archivos certificado y clave privada
  18.   Path:= '/home/gusavo/';
  19.  
  20. // Certificado: certificado es el firmado por la AFIP
  21. // ClavePrivada: la clave privada usada para crear el certificado
  22.   Certificado:= 'PRUEBA.crt'; // certificado de prueba
  23.   ClavePrivada:= 'MiClavePrivada.key'; // clave privada de prueba
  24.  
  25. // Generar el mensaje firmado (CMS)
  26.   cms:= WSAA_SignTRA(tra, Path + Certificado, Path + ClavePrivada);
  27.   showmessage(cms);
  28.  
  29. // Llamar al webservice de autenticación:
  30.   ta:= WSAA_LoginCMS(cms);
  31.  
  32. // Imprimir el ticket de acceso, ToKen y Sign de autorización
  33.   showmessage(ta);
  34. end;
  35.  

El error lo obtengo en la llamada a la funcion "WSAA_CreateTRA('WSFEv1', ttl)".
No se si hay algun error en el procedimiento de compilacion de la libreria o estoy haciendo algo mal en la llamada a la funcion.
Intente probar con la libreria que tu compilaste pero me da un error al tratar de cargarla, por eso opte por compilarla yo.
 
Saludos

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #23 on: August 05, 2021, 01:38:54 pm »
El problema que tengo ahora es que al llamar a una funcion de la libreria me arroja una excepción de la clase 'External: SIGSEGV'.

Tengo definidas estas variables
Code: Pascal  [Select][+][-]
  1. type
  2.   TWSAA_CreateTRA = function (service: string; ttl: longint): string; stdcall;
  3.   TWSAA_SignTRA = function (tra: string; cert: string; pk: string): string; stdcall;
  4.   TWSAA_LoginCMS = function (tra: string): string; stdcall;
  5.  
  6. var
  7.   WSAA_CreateTRA : TWSAA_CreateTRA;
  8.   WSAA_SignTRA : TWSAA_SignTRA;
  9.   WSAA_LoginCMS : TWSAA_LoginCMS;
  10.  


Buenos dias.

¿O encontraste estas funciones?

Solo entiendo esto:

Code: Pascal  [Select][+][-]
  1. fred@fiens ~> nm -D libpyafipws.so
  2. 000000000000143b T cstr
  3. 000000000000149f T format_ex
  4.                  U fprintf
  5.                  U free
  6.                  U malloc
  7.                  U puts
  8. 000000000000174e T PYAFIPWS_CreateObject
  9. 0000000000001881 T PYAFIPWS_DestroyObject
  10. 00000000000019e0 T PYAFIPWS_Free
  11. 00000000000018c3 T PYAFIPWS_Get
  12. 0000000000001949 T PYAFIPWS_Set
  13.                  U PyCallable_Check
  14.                  U PyClass_Type
  15.                  U PyDict_New
  16.                  U PyDict_SetItemString
  17.                  U PyErr_Fetch
  18.                  U PyErr_NormalizeException
  19.                  U PyErr_Print
  20.                  U PyEval_GetBuiltins
  21.                  U Py_Finalize
  22.                  U Py_GetPath
  23.                  U PyImport_Import
  24.                  U Py_Initialize
  25.                  U PyObject_CallObject
  26.                  U PyObject_GetAttrString
  27.                  U PyObject_SetAttrString
  28.                  U PyObject_Str
  29.                  U PyOS_snprintf
  30.                  U PyRun_SimpleStringFlags
  31.                  U PyRun_StringFlags
  32.                  U PyString_AsString
  33.                  U PyString_FromString
  34.                  U PyString_Size
  35.                  U stderr
  36.                  U strlen
  37.                  U strncpy
  38. 000000000000127f T test

I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #24 on: August 06, 2021, 12:26:21 am »

El error lo obtengo en la llamada a la funcion "WSAA_CreateTRA('WSFEv1', ttl)".
No se si hay algun error en el procedimiento de compilacion de la libreria o estoy haciendo algo mal en la llamada a la funcion.
Intente probar con la libreria que tu compilaste pero me da un error al tratar de cargarla, por eso opte por compilarla yo.
 
Saludos

En caso de que encuentre las funciones con:
(Aquí no los veo)

Code: Bash  [Select][+][-]
  1. nm -D libpyafipws.so

Puedes probar con esto:

 
Code: Pascal  [Select][+][-]
  1.   var
  2.       WSAA_CreateTRA : function (service: string; ttl: longint): string; stdcall;
  3.       WSAA_SignTRA : function (tra: string; cert: string; pk: string): string; stdcall;
  4.       WSAA_LoginCMS : function (tra: string): string; stdcall;
  5.      
  6.  ...
  7.  
  8. procedure TForm1.FormCreate(Sender: TObject);
  9. var
  10.   ttl: longint;
  11. begin
  12.   PyAfipWs := LoadLibrary('./libpyafipws.so');
  13.  
  14.   if PyAfipWs = dynlibs.NilHandle then
  15.   begin
  16.     showmessage(GetLoadErrorStr);
  17.     exit
  18.   end;
  19.  
  20.   // AQUI!
  21. Pointer(WSAA_CreateTRA):=DynLibs.GetProcedureAddress(PyAfipWs,PChar('WSAA_CreateTRA'));
  22.  
  23. if WSAA_CreateTRA <> nil then
  24.  
  25.   begin
  26.    
  27. // Generar un Ticket de Requerimiento de Acceso (TRA) para WSFEv1
  28.   ttl:= 36000; //tiempo de vida = 10hs hasta expiración
  29.   tra:= WSAA_CreateTRA('WSFEv1', ttl);
  30.  
  31. end else showmessage('WSAA_CreateTRA = nil');

Pero sigo pensando que para Unix es mejor usar cdecl.
Entonces, en el código de la libreria, libpyafipws.h + ibpyafipws.c, reemplace todo el stdcall con cdecl y luego vuelva a compilar. Y use cdecl en código Pascal también.

Fre;D
« Last Edit: August 06, 2021, 01:56:07 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #25 on: August 06, 2021, 01:36:32 am »
El error lo obtengo en la llamada a la funcion "WSAA_CreateTRA('WSFEv1', ttl)".
No se si hay algun error en el procedimiento de compilacion de la libreria o estoy haciendo algo mal en la llamada a la funcion.
Intente probar con la libreria que tu compilaste pero me da un error al tratar de cargarla, por eso opte por compilarla yo.
 
Saludos

Creo que lo tengo.
(Mamá mia, que aventura!)

También debemos compilar wsaa.c, wsfev1.c y linkar a la libreria.

Code: Bash  [Select][+][-]
  1. gcc -c -I/usr/include/python2.7 -I/usr/include/boost/python -lboost_python37 -lpython3.7 wsaa.c -o wsaa.o -fPIC -shared
  2.  
  3. gcc -c -I/usr/include/python2.7 -I/usr/include/boost/python -lboost_python37 -lpython3.7 wsfev1.c -o wsfev1.o -fPIC -shared


Code: Bash  [Select][+][-]
  1. ld -lboost_python27 -lpython2.7 -o libpyafipws.so libpyafipws.o wsaa.o wsfev1.o -shared -fPIC

En este caso aparecen las funciones:

Code: Pascal  [Select][+][-]
  1. fred@fiens ~/D/p/src> nm -D libpyafipws.so
  2.                  U atol
  3. 00000000000014bb T cstr
  4. 000000000000151f T format_ex
  5.                  U fprintf
  6.                  U free
  7.                  U malloc
  8.                  U puts
  9. 00000000000017ce T PYAFIPWS_CreateObject
  10. 0000000000001901 T PYAFIPWS_DestroyObject
  11. 0000000000001a60 T PYAFIPWS_Free
  12. 0000000000001943 T PYAFIPWS_Get
  13. 00000000000019c9 T PYAFIPWS_Set
  14.                  U PyCallable_Check
  15.                  U PyClass_Type
  16.                  U PyDict_New
  17.                  U PyDict_SetItemString
  18.                  U PyErr_Fetch
  19.                  U PyErr_NormalizeException
  20.                  U PyErr_Occurred
  21.                  U PyErr_Print
  22.                  U PyEval_GetBuiltins
  23.                  U Py_Finalize
  24.                  U Py_GetPath
  25.                  U PyImport_Import
  26.                  U Py_Initialize
  27.                  U PyInt_FromLong
  28.                  U PyObject_CallMethod
  29.                  U PyObject_CallObject
  30.                  U PyObject_GetAttrString
  31.                  U PyObject_IsTrue
  32.                  U PyObject_SetAttrString
  33.                  U PyObject_Str
  34.                  U PyOS_snprintf
  35.                  U PyRun_SimpleStringFlags
  36.                  U PyRun_StringFlags
  37.                  U PyString_AsString
  38.                  U PyString_FromString
  39.                  U PyString_Size
  40.                  U PySys_SetArgv
  41.                  U PyTuple_New
  42.                  U PyTuple_SetItem
  43.                  U stderr
  44.                  U strlen
  45.                  U strncpy
  46. 00000000000012ff T test
  47. 0000000000001a82 T WSAA_CreateTRA
  48. 00000000000022ae T WSAA_LoginCMS
  49. 0000000000001ef3 T WSAA_SignTRA
  50. 000000000000273b T WSFEv1_CompUltimoAutorizado
  51. 0000000000002550 T WSFEv1_Conectar
  52. 000000000000260a T WSFEv1_Dummy
  53. 000000000000269d T WSFEv1_SetTicketAcceso


Incluya la libreria compilada usando CDECL en lugar de STDCALL.
Creo que es posible que deba instalar python 2.7.
Vea mi publicación anterior sobre cómo usar las funciones.
Si usa la libreria-archivo adjunto, use esto para las variables de Pascal:

Code: Pascal  [Select][+][-]
  1. var
  2.       WSAA_CreateTRA : function (service: string; ttl: longint): string; CDECL;
  3.       WSAA_SignTRA : function (tra: string; cert: string; pk: string): string; CDECL;
  4.       WSAA_LoginCMS : function (tra: string): string; CDECL;

Fre;D

PS: ¿Para qué es esta librería?
« Last Edit: August 06, 2021, 01:55:03 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Problema con libreria dinamica
« Reply #26 on: August 06, 2021, 04:34:19 am »
Quote

PS: ¿Para qué es esta librería?

Es para comunicarse con los servidores de la AFIP (Argentina's "IRS"), una API para, por ejemplo, poder emitir una factura electrónica o digital (electronic invoicing).

Saludos.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #27 on: August 06, 2021, 04:46:49 am »
Quote

PS: ¿Para qué es esta librería?

Es para comunicarse con los servidores de la AFIP (Argentina's "IRS"), una API para, por ejemplo, poder emitir una factura electrónica o digital (electronic invoicing).

Saludos.

Ha, OK, gracias.

No conozco bien Python pero me parece que Python 2.7 está obsoleto y que deberíamos reescribir todas las fuentes para Python 3.
Traté de usar la libreria pero hay muchos errores al conectarse a los módulos de Python (pyc) como:

Quote
WSAA_CreateTRA: Failed to load module: exceptions.ImportError: /usr/lib/python2.7/lib-dynload/_ssl.x86_64-linux-gnu.so: undefined symbol: _Py_ZeroStruct - File wsaa.py, line 26, in <module>LibPyAfipWs

 :-[

[EDIT] También el código de wsaa.py es "Windows Only".

Code: [Select]
 
...
   import win32com.server.register
   win32com.server.register.UseCommandLine(WSAA)
...


Tengo serias dudas de que esta librería ya haya funcionado en Linux con las fuentes originales.

Fre;D
« Last Edit: August 06, 2021, 05:30:53 am by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Problema con libreria dinamica
« Reply #28 on: August 06, 2021, 06:08:15 am »
Quote
Tengo serias dudas de que esta librería ya haya funcionado en Linux con las fuentes originales.

Fre;D

En realidad esa librería es open source pero se vende compilada para usar en Delphi, lo sé porque participo de un foro de Delphi en español y ahí en su momento se habló bastante de esa librería, es más, por lo que recuerdo haber leído, todos los programadores que la necesitaron, pues, la compraron...

Saludos.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

Fred vS

  • Hero Member
  • *****
  • Posts: 3158
    • StrumPract is the musicians best friend
Re: Problema con libreria dinamica
« Reply #29 on: August 06, 2021, 06:31:41 am »
Quote
Tengo serias dudas de que esta librería ya haya funcionado en Linux con las fuentes originales.

Fre;D

En realidad esa librería es open source pero se vende compilada para usar en Delphi, lo sé porque participo de un foro de Delphi en español y ahí en su momento se habló bastante de esa librería, es más, por lo que recuerdo haber leído, todos los programadores que la necesitaron, pues, la compraron...

Saludos.

Hum, la creación de la C biblioteca parece funcionar.
Loadlib y GetProcedureAddress functiona.

El problema está en los módulos de Python.
Todo fue escrito en Python27 y existen algunas incompatibilidades con Python3.

Estoy atascado con este error:

Code: Pascal  [Select][+][-]
  1.  undefined symbol: _Py_ZeroStruct

Me temo que se necesita la ayuda de un gurú de Python.

Fre;D

I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

 

TinyPortal © 2005-2018