C# 应用(通过本机 C++ DLL)与另一个使用嵌入 Lua 的 DLL 的应用之间的 IPC

本文关键字:应用 DLL Lua IPC 之间 本机 C++ 另一个 | 更新日期: 2023-09-27 18:30:25

基本上,我问的是如何实现与此处解释的相同的流程。

我希望我的 C# 为我编写的本机 C++ DLL 提供回调。

我希望此 DLL 由嵌入到另一个应用程序中的 Lua 引擎加载,
MUSHClient (一个 MUD/telnet 客户端,带有嵌入式 Lua),通过 package.loadlib("native.dll", "someInitFunction"); .

然后在 MUSHClient 中,我想编写调用 DLL 公开的函数的脚本。我希望这些函数调用我的 C# 应用程序提供的回调函数/委托。

我该怎么做?
我知道如何在我的DLL中导出函数,我不知道的是如何在进程之间共享回调。

C# 应用(通过本机 C++ DLL)与另一个使用嵌入 Lua 的 DLL 的应用之间的 IPC

您需要某种进程间通信(IPC)。

我推荐命名管道。

下面是 C# 和 C++ 中命名管道实现的一个很好的例子。