gpt4 book ai didi

c++ - 从 LuaJIT 调用 C++ DLL

转载 作者:搜寻专家 更新时间:2023-10-31 01:44:09 24 4
gpt4 key购买 nike

我知道我不能使用 FFI 加载 C++ DLL(只有 C 可以工作),那么我该怎么做呢?如果我需要使用包装器,我该如何开始使用它?

编辑:我无法以任何方式更改 DLL。

最佳答案

您可以使用 C++ DLL。您需要像这样导出函数(在 MSVC 中):

extern "C" __declspec(dllexport)

由于 C++ 名称重整(用于重载),您的函数签名将与 C 命名不同。例如,这个函数:

int foo(char* a, int b, double c)

可能会使用 C++ 命名导出为类似 foo@12abunchoflettershere 的内容,而不是像 C 命名那样的 foo

请注意,extern "C" 并不意味着您的代码是纯 C 代码。您可以正常使用 C++。这仍然有效:

extern "C" __declspec(dllexport) void foo(char *a, int b, std::shared_ptr<Foo> ptr)

关于c++ - 从 LuaJIT 调用 C++ DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23937639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com