我正在关注 Erlang C Nodes 教程,并试图对 libXl C 库进行包装调用。在我的 C 节点中,创建一个 BookHandle 并将其作为一个消息调用的响应传递。
BookHandle book = xlCreateBook();
resp = erl_format("{ok, ~w}", erl_mk_binary(book, sizeof book));
erl_send(fd, fromp, resp);
我的问题是我可以使用该响应向具有相同对象的 C 节点发送另一条消息吗?例如发送
{any, 'c1@CST1'} ! {self(), {step2,Result}},
并在 C 节点中有类似下面的代码来获取传递的 BookHandle
if (strncmp(ERL_ATOM_PTR(fnp), "step2", 3) == 0) {
BookHandle book = (BookHandle)ERL_BIN_PTR(argp);
xlBookLoad(book, "example.xls");
}
这样的事情是否可能,或者为特定功能创建包装器需要在每次向 C 节点发送消息时创建 BookHandle。
对不起,如果这没有任何意义,我对这一切都是新手。