Linux 上Mono的Platform Invoke实现的当前状态是什么?在Solaris上?
工作,可用和稳定.它经过了很好的测试,因为很多单声道自己的低级功能必须通过它编组到底层操作系统.
与Microsoft .Net实现相比,有一些P/Invoke扩展(毕竟它们处理单个OS系列和最多三个体系结构).最值得注意的是库映射将库名称转换为特定于操作系统的变体(例如mylib.dll
,mylib.so
在Linux mylib.dylib
上搜索,在OS X上搜索等)并考虑各种其他系统特定约定.还有一个DLLMap配置扩展,如果默认名称转换不够,可以使用它.通常,在不同的操作系统上暴露二进制库的相同API很方便,因此在平台之间迁移只需要更改C代码,而不是.Net部分.