如何从我的 C 代码调用 C# dll 中的方法

How do I call methods in a C# dll from my C code?

本文关键字:dll 方法 调用 代码 我的      更新时间:2023-10-16

我正在尝试在基于 Lisp 的第三方程序(我们称之为 ABC)和我自己编写的 C# 程序(我们称之为 DEF)之间创建一个集成。问题是 ABC 只能调用用 C 或 Fortran 创建的程序集。所以我开始学习C,我得到了"hello world"测试,ABC调用我的C dll并得到"hello world"作为回报。我尝试使用显式加载和 GetProcAddress 从 C 代码调用我的 DEF dll。如果我调用另一个 C dll,但不是 C# dll,它就会起作用。现在我想知道我是否必须学习C++并从C++调用 C# 来创建这个漂亮的调用链:

ABC -> C -> C++ ->

DEF(C#) -> C++ -> C -> ABC

如果这是唯一的方法,任何人都可以帮我举一些例子等吗?

创建 .NET 程序集时,可以设置一个复选框,使其具有 为 COM 互操作注册的程序集。这将允许您访问它 从任何可以调用COM的语言(C可以吗?好久不见 因为我触摸了 C 或 C++。

配置属性 ->项目属性的"生成"页。 查找"注册 COM 互操作"。

使用此项目可将 C# 函数导出为本机入口点。