Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Epson TM900 Parametros dll (https://www.clubdelphi.com/foros/showthread.php?t=93583)

softarg 22-07-2020 15:22:21

Epson fiscal tm900
 
Hola a todos, veo que algunos ya están hace tiempo luchando con esta impresora.

Estoy tratando de importar la Dll = EpsonFiscalInterface.dll en Delphi 10.3 pero es imposible, "Error al cargar la bibioteca de tipo/DLL".

Intente registrar la Dll de varias formas y tampoco funciona.

alguno pudo traducir todas las llamadas a las funciones?
hay alguna forma de ver cuales son las funciones expuestas por la Dll?

estoy atorado hace días con esto, agradezco su tiempo.

Saludos Softarg.

softarg 22-07-2020 15:25:53

Epson fiscal tm900
 
Cita:

Empezado por omarperez.qui (Mensaje 529659)
Hola, estoy luchando con una Dll de una impresora Epson Fiscal (TM900), la que viene en la definición

DLL_EXPORT_IMPORT int DLL_STD_CALL
ConsultarVersionDll( char *respuesta_descripcion, int respuesta_descripcion_largo_maximo, int *respuesta_mayor, int *respuesta_menor );

En un ejemplo que trae la misma librería esta definida :

Código Delphi [-]
type
  TConsultarVersionDll = function ( descripcion : PChar; descripcion_largo_maximo: LongInt; var mayor : LongInt; var menor : LongInt) : LongInt; StdCall;
  
var
  dll  : THandle;
  error : LongInt;
  str : Array[0..100] of Char;
  mayor : LongInt;
  menor : LongInt;

  ConsultarVersionDll: TConsultarVersionDll;

begin
  dll := 0;

  // instanciar dll - recordar que se require "uses Windows"
  // for production -- dll := LoadLibrary('EpsonFiscalInterface.dll');
  dll := LoadLibrary('EpsonFiscalInterface.dll');

  // check error
  if dll = 0 then
  begin
    ShowMessage('Error al instanciar DLL');
    Exit;
  end;

  // obtener las referencias a funciones:  "ConsultarVersionDll"
  @ConsultarVersionDll := GetProcAddress(dll, 'ConsultarVersionDll');
  if not Assigned(ConsultarVersionDll) then
  begin
    ShowMessage('Error al asignar funcion: ConsultarVersionDll');
    Exit;
  end;
  
  // execute ConsultarVersionDll
  mayor := 0;
  menor := 0;
  str := StringOfChar (' ', 100);

  error := ConsultarVersionDll( str, 100, mayor, menor );

  ShowMessage( str );
  ShowMessage( IntToStr(mayor) );
  ShowMessage( IntToStr(menor) );
  ShowMessage( IntToStr(error) );

  // desalocar dll
  FreeLibrary(dll);
end;

Esto siempre da error y he probado cambiar los tipo de datos pero nada funciona

El problema es que el ejemplo viene para Lazarus y evidentemente es distinto a Delphi.

Pudiste obtener las cabeceras de todas las funciones para usar/vincular la Dll?

Gracias


La franja horaria es GMT +2. Ahora son las 05:17:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi