有没有可能在非CLR程序中使用.NET程序集?

4

我正在为3DsMax开发一个插件。因此,它是非CLR C ++。我的问题是,是否有可能在此插件中使用.NET程序集?

感谢您的回答。

祝好,Nem。


有用吗?http://www.la-solutions.co.uk/content/DotNet/DotNet-CPlusPlusClients.htm - Jason Evans
3个回答

4

谢谢,我认为这完美地回答了我的问题。 :) - Christoph Meißner
MSDN Magazine的链接现在已经失效了。我找不到它的新URL,但是这里有一些文档的链接:https://learn.microsoft.com/en-us/dotnet/framework/unmanaged-api/hosting/index - user310988

3

您可以通过COM-interop实现。

您可以将.NET程序集标识为公开COM接口,然后可以由任何能够使用COM服务的本机进程访问该接口。


这需要在单独的进程中运行.NET代码,我建议使用CLR托管,因为它是自包含的。 - Jonathan Holland
你确定吗?以前不需要,我很难找到任何参考资料表明现在是必需的。 - Steve Morgan

3

如果您想使用 .Net 程序集,那么您需要 CLR 来运行它。在本地进程中,有多种方法可以实现这一点,包括:

  • 在其他本地进程中托管 CLR
  • 在单独的 .Net 进程中运行程序集,并通过 COM 互操作进行通信

我认为您不需要单独的进程来使用COM互操作。在VB6到.NET的好日子里,您肯定没有这样做。 - Steve Morgan
@Steve,你不需要为COM互操作使用单独的进程,但如果你确实使用了单独的进程,COM可以成为进程之间的通信渠道。 - JaredPar
好的,我同意;-) 我曾经以为自己疯了一会儿,因为我从未“需要”在非托管代码中运行托管组件以使用它们(只要CPU架构相同)。 - Steve Morgan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接