2008-09-16 6 views
5

관리 코드, 특히 IronRuby 또는 IronPython을 C++ 또는 Delphi와 같은 unamanaged 코드에서 호출 할 수 있습니까?비 관리 코드에서 DLR 사용

예를 들어 델파이로 작성된 C# .NET으로 이동하는 응용 프로그램이 있습니다. 새 응용 프로그램에서 VBSCRIPT를 대체하기 위해 Ruby 또는 Python 스크립팅을 제공하고자합니다. 그러나 이전 Delphi 응용 프로그램에서 Ruby/Python 스크립팅을 제공해야합니다. Delphi 코드에서 IronRuby/IronPython이 제공하는 관리되는 dll을 사용할 수 있습니까?

답변

8

예. Delphi for Win32 예제 : http://interop.managed-vcl.com/
Delphi for Win32에서 Delphi.NET 어셈블리뿐만 아니라 C#을 사용하는 방법을 보여줍니다.

2

예. Com Callable Wrappers을 사용하면 가능합니다. 기본적으로 .Net 클래스는 Win32 코드 (Delphi 또는 C++)에서 COM/ActiveX를 통해 호출 할 수 있습니다.

6

COM 구성 요소이므로 관리되지 않는 코드에서 CLR 또는 DLR을 호스팅 할 수 있습니다. 이 시점부터 상호 작용해야하는 관리되는 어셈블리를로드 할 수 있습니다. MSDN에서

: Hosting the Common Language Runtime

0

RemObjects에서 Hydra을 보았습니까? 나는 그것에 대한 경험이 없지만 소개에서 관련성이있다.

3

대신 CPython을 임베드하지 말고 C/C++에서 직접 사용할 API를 사용해야합니다. 다국어 이점은 없지만 단순함을 얻습니다.

2

나는 C#에서 IronPython 스크립트 엔진에 대한 인터페이스를 생성하기 위해 Unmanaged Exports을 사용합니다. Win32 Delphi의 .NET 코드를 사용할 때는주의하십시오. 부동 소수점 예외 동작을 변경하려면 Set8087CW($133F);을 사용해야합니다.