一个在Unix上编写并构建的用C语言编写的共享对象文件是否可以通过C# P/Invoke调用?
还是我需要使用Java或类似的东西?
一个在Unix上编写并构建的用C语言编写的共享对象文件是否可以通过C# P/Invoke调用?
还是我需要使用Java或类似的东西?
我认为至少没有简单的方法,特别是如果你指的是在Windows上使用C#。在这种情况下,您需要能够解码共享对象并进入其中的代码,类似于GNU / linux的ABI重新实现。此外,任何其他库也必须存在并可用,例如C运行时库等。这可能需要非常大的努力。
至于直接在linux / Mono下执行它,请参见此答案:Calling UNIX and Linux shared object file .so from c#。
您还可以尝试查看Open Office所做的事情,http://packages.debian.org/lenny/cli-uno-bridge可能会有所帮助;但这更像是一个接口,而不是直接将两者连接在一起。