gpt4 book ai didi

lua - 将外部指针包装到 SWIG 数据结构中

转载 作者:行者123 更新时间:2023-12-02 04:52:59 24 4
gpt4 key购买 nike

我将 Lua 与两个 C 库一起使用,其中一个使用 SWIG,另一个手动包装。

手动包装的库是Freetype的接口(interface);它在 C 中创建 FT_Face 指针,它作为 lightuserdata 返回。

现在我需要将此 FT_Face 作为参数传递给由 SWIG 包装的函数之一。然而,SWIG 当然不会将普通用户数据作为参数,而是期望每个 C 指针都由 SWIG 创建 - 即使我有一个 FT_Face 指针,SWIG 想要看到一个 SWIGTYPE_p_FT_Face,也就是下面的swig_lua_userdata

有没有办法将 Lua 用户数据转换为 swig_lua_userdata?我如何让 SWIG 将我的 FT_Face 用户数据“识别”为函数的有效参数?

最佳答案

答案似乎是“typemaps”:

%typemap(in) FT_Face {
$1 = (FT_Face)lua_touserdata(L,$input);
}
%typemap(typecheck) FT_Face = void*;

关于lua - 将外部指针包装到 SWIG 数据结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25954627/

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