我正在尝试在基于 Lisp 的第 3 方程序(我们称之为 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
如果这是唯一的方法,有人可以帮我举一些例子吗?