我有一个使用 C++/CLI 项目的代码库,该项目通过瘦包装类将 C++ 类公开给 CLR。例如……
C++ 项目中的 C++ 代码
class Foo {
public Foo(bool wat) { /* do the things */ }
};
混合模式程序集中的 C++/CLI 代码(C++/CLI 项目)
public ref class ManagedFoo {
Foo * foo;
public:
ManagedFoo (bool wat) { foo = new Foo(wat); }
!ManagedFoo () { delete foo; }
~ManagedFoo () { this->!ManagedFoo (); }
};
据我所知,混合模式程序集几乎只能在 Windows .NET 上运行。我希望我不需要重构组件并使用 P/Invoke
,这将为我提供跨平台支持。
有谁知道 .NET Core 是否支持混合模式程序集?欢迎提出其他想法。
最佳答案
C++/CLI 上下文中的非托管代码始终是特定于平台的,并且是为特定操作系统 (Windows) 和特定 CPU 架构 (x86/x64) 编译的。 C++/CLI 中的非托管代码最终很像使用 C++ 编译器编译的实际 C++ 代码。由于混合模式程序集可以包含 native 代码,因此它们绑定(bind)到特定的操作系统和 CPU 架构。
编辑(2019 年 3 月):此答案早于 .Net Core,并且在 Core 上下文中可能已过时。
关于c++ - 混合模式程序集(C++/CLI 项目)能否在 .NET Core 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545093/