Recent

Author Topic: Erro ao executar um método de DLL feita em C#  (Read 5660 times)

wandrey

  • Newbie
  • Posts: 1
Erro ao executar um método de DLL feita em C#
« on: September 21, 2023, 02:45:12 pm »
Estou tentando utilizar uma DLL feita em C# e quando vou executar um método específico, onde passo por parâmetro 2 objetos, tenho o seguinte erro:



Projeto Treinamento elevou classe exceção 'EOleSysError' com a mensagem:
Parâmetro incorreto.
No endereço: 10019F5DD

Imagem do erro anexada.



Erro ocorre na linha 28 do código abaixo.

Code: Pascal  [Select][+][-]
  1. procedure TfrmPrincipal.btnConsultaStatusNFeClick(Sender: TObject);
  2. var
  3.   oConfiguracao: OleVariant;
  4.   oConsStatServ: OleVariant;
  5.   oStatusServico: OleVariant;
  6.   oExceptionInterop: OleVariant;
  7. begin
  8.   // Criar objeto de configuração mínima
  9.   oConfiguracao := CreateOleObject('Unimake.Business.DFe.Servicos.Configuracao');
  10.   oConfiguracao.TipoDFe := 0; //0=NFe
  11.   oConfiguracao.CertificadoArquivo := 'C:\Projetos\certificados\UnimakePV.pfx';
  12.   oConfiguracao.CertificadoSenha := '12345678';
  13.  
  14.   //Criar objeto do XML
  15.   oConsStatServ := CreateOleObject('Unimake.Business.DFe.Xml.NFe.ConsStatServ');
  16.   oConsStatServ.Versao := '4.00';
  17.   oConsStatServ.TpAmb := 2; //2=Homologação
  18.   oConsStatServ.CUF := 41; //41=Paraná
  19.  
  20.   ShowMessage(oConsStatServ.cUF);
  21.  
  22.   //Criar objeto para pegar exceção do lado do CSHARP
  23.   oExceptionInterop := CreateOleObject('Unimake.Exceptions.ThrowHelper');
  24.  
  25.   try
  26.      //Consumir o serviço
  27.      oStatusServico := CreateOleObject('Unimake.Business.DFe.Servicos.NFe.StatusServico');
  28.      oStatusServico.Executar(oConsStatServ, oConfiguracao);
  29.  
  30.      //XML retornado pela SEFAZ
  31.      //ShowMessage(oStatusServico.RetornoWSString);
  32.  
  33.      //Código de Status e Motivo
  34.      //ShowMessage(IntToStr(oStatusServico.Result.CStat));
  35.      //ShowMessage(oStatusServico.Result.XMotivo);
  36.   except
  37.     //ShowMessage(oExceptionInterop.GetMessage());
  38.     //ShowMessage(IntToStr(oExceptionInterop.GetErrorCode()));
  39.   end;
  40. end;

Códigos anteriores, onde crio os objetos das classes da DLL em C#, funcionam. Inclusive no ShowMessage da linha 20 consigo recuperar informações, o que me faz acreditar que a DLL está bem registrada no Windows e os objetos foram criados corretamente.

Por favor, alguém tem informação que possa ajudar na solução deste erro?

 

TinyPortal © 2005-2018