在Linux(mono)上使用混合模式(托管/非托管)dll



我需要将.NET库移植到Linux以使用Mono运行。

库本身是用C#编写的,但它引用了另一个用托管和非托管C++编写的混合模式DLL,并向非托管类公开托管包装器。

我认为dll不会只在Linux上运行,因为它是用VS for windows编译的。

PS:混合模式dll只链接libpng和zlib,它们都有Linux端口。

1) 有什么简单的方法可以解决这个问题吗?

2) WINE能以某种方式与mono结合使用来覆盖库中未映射的部分吗?如果是这样,会不会导致性能问题?

Mono不支持混合模式程序集,因此您可以尝试WINE是否可以提供帮助。

可行的方法是使用CppSharp,https://github.com/mono/CppSharp

最新更新