Pergunta

É possível chamar código gerenciado, especificamente IronRuby ou IronPython, a partir de código não gerenciado, como C++ ou Delphi?

Por exemplo, temos um aplicativo escrito em Delphi que está sendo movido para C#.NET. Gostaríamos de fornecer scripts Ruby ou Python em nosso novo aplicativo para substituir o VBSCRIPT.No entanto, precisaríamos fornecer scripts Ruby/Python no antigo aplicativo Delphi.É possível usar as dlls gerenciadas fornecidas pelo IronRuby/IronPython a partir do código Delphi?

Foi útil?

Solução

Sim.Exemplo de Delphi para Win32 aqui: http://interop.gerenciado-vcl.com/
Mostra como usar um assembly C# e Delphi.NET do Delphi para Win32.

Outras dicas

É possível hospedar o CLR ou DLR em código não gerenciado, pois é um componente COM.A partir desse ponto, você pode carregar os assemblies gerenciados com os quais precisa interagir.

Do MSDN: Hospedando o Common Language Runtime

Por que não incorporar o CPython, que possui uma API destinada a ser usada diretamente do C/C++.Você perde a vantagem de vários idiomas, mas provavelmente ganha simplicidade.

Sim.Isso é possível usando Wrappers que podem ser chamados de Com.Basicamente você está permitindo que suas classes .Net sejam chamadas através de COM/ActiveX a partir do seu código win32 (Delphi ou C++).

eu uso Exportações não gerenciadas para criar interface para o mecanismo de script IronPython em C#.Tenha cuidado ao usar o código .NET do Win32 Delphi - você deve usar Set8087CW($133F); para alterar o comportamento da exceção de ponto flutuante.

Você viu Hidra de RemObjects?Não tenho experiência com isso, mas pela introdução parece relevante.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top