【发布时间】:2021-04-11 00:21:34
【问题描述】:
我了解 C# 可用于 Linux,特别是 Centos8: https://docs.microsoft.com/en-us/dotnet/core/install/linux-centos 但是用 C# 为 Linux/Centos8 开发的应用程序可以调用为其他语言(例如 C++ 或 C)编译的库吗?
【问题讨论】:
-
"为其他语言编译的库" -- 库(或执行)不是为语言编译的。它们是用某种编程语言编写的,然后针对某些 CPU 或解释器/运行时架构进行编译。所以你的问题很混乱。
-
由 Visual Studio 从 C++ 源代码编译的 Windows DLL 不能由 C# 应用程序直接访问。必须在 DLL 上使用 Windows 实用程序 AXIMP.EXE 以生成 C# 和 C++ DLL 之间的桥接接口。从 C++ 编译的 Linux 库是否可以由 C# for Linux 直接调用?如果没有,Linux 是否存在与 AXIMP.EXE 等效的东西来桥接 C# 和 C++?
-
您可以使用 P/Invoke 从 C# 调用 C API 中的函数。参见例如这个article
-
这能回答你的问题吗? P-Invoke in .net core with Linux