繁体   English   中英

混合模式程序集(C ++ / CLI项目)是否可以在.NET Core上运行?

[英]Will mixed mode assemblies (C++/CLI projects) work on .NET Core?

我有一个使用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 ++代码非常相似。 由于混合模式程序集可以包含本机代码,因此它们绑定到特定的OS和CPU体系结构。

编辑(2019年3月):这个答案早于.Net Core,可能在Core上下文中已经过时了。

混合模式程序集是否与.NET Core一起使用不是由特定于平台的代码决定的。 正在研究支持混合模式组件:

https://github.com/dotnet/coreclr/issues/18013

据我所知,这需要重新编译C ++ / CLI项目以定位.NET Core。

当然,使用Windows的x86代码的混合模式程序集仅在Windows中用作x86,依此类推。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM