Mário Costa 0 Posted May 14, 2019 Report Share Posted May 14, 2019 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? Link to post Share on other sites
Kline777 97 Posted May 14, 2019 Report Share Posted May 14, 2019 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? Link to post Share on other sites
Mário Costa 0 Posted May 14, 2019 Author Report Share Posted May 14, 2019 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 Link to post Share on other sites
Kline777 97 Posted May 15, 2019 Report Share Posted May 15, 2019 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 Link to post Share on other sites
Mário Costa 0 Posted May 16, 2019 Author Report Share Posted May 16, 2019 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. Link to post Share on other sites
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now