- 8. Uso da DLL
8.1. DELPHI com early binding - 8. Uso da DLL
« Anterior - 8.1.1. Obter a versão da DLL
Próximo »
8.1. DELPHI com early binding
Sumário
Como criar o NFe_Util_2G_TLB.pas (NFe_Util_2G_TLB.dcu)
Para acessar a DLL com early binding em Delphi é necessário criar a unit NFe_Util_2G_TLB.pas para integração com a DLL através do processo de import Type Library da DLL NFe_Util_2G.dll no Delphi:
- Abra um novo projeto;
- selecione a opção Import Type Library do menu Project;
- na janela Import Type Library, clique no botão Add;
- procure o arquivo NFe_2G_Util.tlb que existe na mesma pasta onde a DLL foi registrada;
- clique no botão Create Unit;
Este processo cria a unit NFe_Util_2G_TLB.pas necessária para fazer a interface com a DLL.
Parâmetro string das chamadas
Utilizar o tipo widestring do Delphi, nas versões mais novas do Delphi é necessário utilizar o tipo compatível com widestring.
Ajustes para usuários de DELPHI 5/6
O uso da DLL em DELPHI 5/6 com early binding é possível, mas requer ajustes na unit de integração criado pelo DELPHI 5/6, que pode não ser simples para usuários principiantes e pode até não funcionar, assim, sempre recomendamos o uso do Delphi 7 se for utilizar early bindig para evitar problemas, ou utilizar late binding
Os usuários de Delphi 5 e 6 devem fazer os seguintes ajustes no arquivo mscorlib_tlb.pas:
acrescentar a literal System nos types: Byte, Int64 e Double que causam erros de compilação:
Exemplo: System.Byte ao invés de Byte:
Byte = packed record
m_value: System.Byte;
end;
O Demo foi escrito para Delphi 7, sendo necessário eliminar a referência à unit Variant nos uses, além de outros ajustes nos componentes caso seja utilizado em D5/D6.
Como instanciar a DLL
unit teste; interface uses (...), NFe_Util_2G_TLB, ComCtrls, ComObj; // acrescentar a NFe_Util_2G_TLB, ComCtrls e ComObj no use da unit // código omitido var Util:NFe_Util_2G_Interface; // declarar a interface da DLL begin Util := NFe_Util_2G_TLB.CoUtil.Create; // instância a DLL // código omitido i:= Util.PegaNomeCertificado(nomeTitular, msgResultado); // chamar a funcionalidade desejada // código omitido Util := nil; // libera objeto end;
- 8.1. DELPHI com early binding
8. Uso da DLL - « Anterior
8. Uso da DLL - Próximo »
8.1.1. Obter a versão da DLL