【问题标题】:Use .NET Assemblies in Native C++ Applications在本机 C++ 应用程序中使用 .NET 程序集
【发布时间】:2011-05-25 12:55:38
【问题描述】:

我遵循了关于如何在本机 C++ 应用程序中使用 .NET 程序集的指令 http://msdn.microsoft.com/en-us/visualc/bb892742。现在我的问题是: 假设我想创建一个 C++ dll,在其中以类似的方式调用 .NET 程序集。 是否可以在 C++ 本机应用程序中使用此 dll 的 LoadLibrary? 或者在这种情况下 C++ 本机应用程序是否也应该与 /clr 选项链接? 第二个问题是:在 C++ 原生应用程序中使用 /clr 标志有什么后果? 性能、编译时、运行时……?

【问题讨论】:

  • 这个问题太模糊了,无法给出准确的答案。你为什么不试试呢。

标签: .net c++


【解决方案1】:

您可以使用 LoadLibrary 从非 cli 应用程序加载 cli c++ dll(已在 Delphi 应用程序中完成此操作)。 由于我的cli dll很小,所以不能对惩罚做任何陈述。

【讨论】:

  • 好吧,我可以调用 LoadLibrary 并将其链接进去,但是一旦我调用了调用 .NET 层的 C++ 函数,我就会收到错误:发生异常未知软件异常 (0xc0000409)
  • 刚做了c++测试项目,它加载了cli dll调用System::Console::WriteLine("CLI");它工作没有任何问题
  • 我得到的未知软件异常是由于stackoverflow.com/questions/93770/… 中描述的原因:CLR 不会在非托管 DLL 的路径中查找托管 DLL,只会在可执行文件的位置查找它是。 (或在 GAC 中)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 1970-01-01
  • 2013-03-23
相关资源
最近更新 更多