Ver Mensaje Individual
  #1  
Antiguo 29-06-2006
guiweb guiweb is offline
Miembro
 
Registrado: may 2006
Posts: 17
Reputación: 0
guiweb Va por buen camino
Manejo de una DLL

Hola a todos, tengo el siguiente problema, supongo que mi pregunta les sonará comun, pero no lo es:

Ambiente de desarrollo: Delphi 5 corriendo sobre WinXP sp2.

estoy desarrollando un plugin, que debe comunicarse con una impresora fiscal, para esto el fabricante de la impresora me ha facilitado 2 DLL
una llamada FISCAL232.DLL que es la que se encarga de la comunicacion con la impresora y otra llamada RH4610Kc4.DLL que es la que interactua con mi sistema. hasta aca vamos bien, ahora paso a detallar cuales han sido mis pasos espero que me digan si me he equivocado o no..

para utilizar la DLL RH4610Kc4 hago los siguientes pasos.

Menu: proyecto->importar Libreria; aca busco la DLL RH4610Kc4 y la cargo al sistema, esto modifica algunos parametros de mi programa pero hasta ahi todo bien, dentro del USES me crea una llamada a RH4610Kc4_TLB, les coloco el codigo de lo que me va quedando:
Código Delphi [-]
uses
 Windows, RH4610Kc4_TLB, forms,inifiles, Dialogs,Controls,Classes, Graphics ,SysUtils, messages, MSXML_TLB, ShellAPI;

luego YO hago esto:

Código Delphi [-]
type
  TInvcUpdate = class(TOnUpdate)
  private
  ClassPrincipal1: TClassPrincipal; // instancio la clase que viene con la DLL
    fInvoice, fForm: IRdaDocument;
    fInvoiceItem: IRdaDocument;
  public
    class function Table: integer; override;
    procedure Initialize(RProApp: TRProApp;
                         Doc: IRdaDocument); override;
    function BeforeUpdate: boolean; override;
    procedure AfterUpdate; override;
  end;

y luego simplemente uso las funciones que vienen en la DLL de esta forma:
Código Delphi [-]
ClassPrincipal1.Open_Port(1);

con este comando se supone que mi plugin abre el puerto de la impresora para recibir comandos fiscales... pero la verdad es que recibo un error del tipo 25(0x19)... lei en el manual de errores de la impresora y dice que es un problema con la Memoria Fiscal y que debo reemplazarla, lo cual es MENTIRA, ya que tengo hecho un programa en visual que ocupa exactamente los mismos instrumentos que Delphi, y FUNCIONA a las mil maravillas...

ahora yo les pregunto: Esta bien lo que estoy haciendo??? o tengo que llamar a la DLL de otra manera??

muchas gracias por darse el tiempo de leer y pensar en mi problema, son muy amables
Responder Con Cita