Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Mário Costa

DotNet Runtime Library for Delphi

Recommended Posts

Mário Costa

Bom dia,

Tenho um fornecedor que passou de VB para .Net. Antes usava a importação do componente no IDE do Delphi (XE8) mas agora deixou de ser possível e tive de optar pelo instalação do DotNet Runtime Library for Delphi da CrystalNet. Faço a importação das Assemblies sem problemas mas quando executo alguns métodos existentes na assembly importada tenho a seguinte excepção "Não é possível localizar a assemblagem 'Nome da assembly, Version = x,x,x,x, Culture = Neutral, PublicKeyToken = xxxxxxxxxxxx".

Alguém me pode ajudar?

Share this post


Link to post
Share on other sites
Kline777

Boas, eu costumo é ter de colocar outras dll's que o .NET necessite  junto com o exe.

Muitas vezes tambem é problemas de versoes entre essas dll's, tens a certeza que tens isso tudo ok?

 

Share this post


Link to post
Share on other sites
Mário Costa
20 minutos atrás, Kline777 disse:

Boas, eu costumo é ter de colocar outras dll's que o .NET necessite  junto com o exe.

Muitas vezes tambem é problemas de versoes entre essas dll's, tens a certeza que tens isso tudo ok?

 

As versões das dll's são as mesmas, o programa de importação mostra vários campos incluindo a versão.

Agora se tenho tudo ok? Pelos vistos não.

Que código incluis para acederes ás propriedades e métodos ? Podes dar um pequeno exemplo.

Obrigado 

Share this post


Link to post
Share on other sites
Kline777

Tenho uma interface com os métodos que estao na DLL, algo como

  _WSDLL = dispinterface
  ['{F679B191-1726-4081-BDBF-837C506F08AA}']
    procedure WF_Initialize(ServiceManagerIP:string); dispid 0;
    function WF_Manager(AResourceID:string; APartList:string; AMachineKind:string):integer; dispid 1;
  end;

Depois para instanciar a classe que interage com a DLL
 

constructor TWF.Create;
var
  obj:ClrIDispatch;
  oWSF : _WSDLL;
begin
  obj:= TClrDispatchActivator.CreateInstance('NomeDaClasseNaDLL');
  oWSFrame := _WSDLL(obj);
end;

Depois faço chamadas directas

  oWSFrame.WF_Initialize(AServiceManagerIP);


 

Citação

 

 

Share this post


Link to post
Share on other sites
Mário Costa
16 horas atrás, Kline777 disse:

Tenho uma interface com os métodos que estao na DLL, algo como


  _WSDLL = dispinterface
  ['{F679B191-1726-4081-BDBF-837C506F08AA}']
    procedure WF_Initialize(ServiceManagerIP:string); dispid 0;
    function WF_Manager(AResourceID:string; APartList:string; AMachineKind:string):integer; dispid 1;
  end;

Depois para instanciar a classe que interage com a DLL
 


constructor TWF.Create;
var
  obj:ClrIDispatch;
  oWSF : _WSDLL;
begin
  obj:= TClrDispatchActivator.CreateInstance('NomeDaClasseNaDLL');
  oWSFrame := _WSDLL(obj);
end;

Depois faço chamadas directas


  oWSFrame.WF_Initialize(AServiceManagerIP);


 

 

Obrigado KLine777, vou continuar, direi algo.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.