相关疑难解决方法(0)

从 C 代码调用 Raku 代码的协议是什么?

假设我在 C 中有我的事件驱动的 TCP 通信库。

在我的 Raku 应用程序中,我可以使用 NativeCall 调用 C 库中的函数。

my $server = create-server("127.0.0.1", 4000);
Run Code Online (Sandbox Code Playgroud)

现在,从我用C回调(say onAccept)我想调出在我的应用程序乐功能(说on-accept(connection)那里connection将是一个指向C结构)。

那么,我该怎么做:on-accept从我的 C 函数调用我的 Raku函数onAccept

附:我尝试使用一个简单的标题“如何从 C 代码调用 Raku 代码”进行发布,但无论出于何种原因,stackoverflow.com 都不允许我这样做。正因为如此,我编造了这个花哨的标题。

我正在创建一个 32 位 DLL。我们必须明确告诉 CMake 配置 64 位构建。

cmake -G "Visual Studio 14 2015 Win64" ..
Run Code Online (Sandbox Code Playgroud)

无论如何,现在代码运行了,这不是我所要求的,因为回调仍然在 C 中。

我所要求的似乎不太可能。

我尝试使用 Haakon 建议的方法,但恐怕我不明白它是如何工作的。

我在 Windows 中,不幸的是,Raku 找不到我的 dll,即使我将它们放在 C:\Windows\System32 中。它找到“msvcrt”(C 运行时),但没有找到我的 dll。

dll 代码(Visual Studio 2015)。

#include <stdio.h>

#define EXPORTED __declspec(dllexport) …
Run Code Online (Sandbox Code Playgroud)

raku

14
推荐指数
2
解决办法
350
查看次数

标签 统计

raku ×1