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

本文关键字:共享 对象 文件 so linux 调用 UNIX | 更新日期: 2023-09-27 18:05:36

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

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

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

Mono能够与基于dlopen(3)构建的c#内部的本地库集成。您只需要使用DllImport语句和库的名称(即。'libform.so.5'),然后用一个友好的c#类来包装本机代码和数据类型,这个类负责处理所有底层的东西。本页有一个很好的概述,有很多关于如何处理封送指针和其他不安全类型的信息。

一旦您编写了包装器类,您就可以使用它,而不必担心它在下面使用本机共享库。

我想说,至少可能没有简单的方法,特别是如果你指的是Windows上的c#。在这种情况下,您将需要一些能够解码共享对象并获得其中代码的东西,有点像GNU/linux的ABI的重新实现。此外,任何其他库也必须存在并且可用,例如C运行时库等。这可能是一项非常重要的工作。

至于直接在linux/Mono下执行,请参见以下答案:从c#调用UNIX和linux共享对象文件。so。

你也可以试着看看open office做什么,http://packages.debian.org/lenny/cli-uno-bridge可能会有帮助;但这更像是一个接口,而不是直接将两者连接在一起。