从c#调用UNIX和Linux共享对象文件.so

Nat*_*apa 8 c# linux mono pinvoke shared-libraries

是否有一种方法可以从C#P/Invoke中调用用C编写并在Unix上构建的共享对象文件?

或者我需要使用Java或类似的东西?

Jam*_*rty 9

Mono能够与构建在dlopen(3)之上的C#中的本机库集成.您只需使用带有库名称的DllImport语句(即'libform.so.5'),然后使用友好的C#类包装本机代码和数据类型,该类负责处理所有低级别的东西.这个页面有很好的概述,有很多关于如何处理编组指针和其他不安全类型的信息.

一旦你编写了你的​​包装类,你就可以使用它而不用担心它正在使用下面的本机共享库这一事实.