gpt4 book ai didi

java - 以指针为参数的 C++ 函数并使用 swig 接口(interface)处理它

转载 作者:行者123 更新时间:2023-11-28 07:17:41 27 4
gpt4 key购买 nike

我已经创建了 swig 接口(interface)文件来为我的 C++ 文件创建 JNI。但我的一些 C++ 文件包括接受指针作为参数的函数,如 (void*) 、C++ BOOL 和 Swig 将其转换为类型如 SWIGTYPE_p_int32_t 如何从 java 传递这种数据类型?

例如,函数的实际原型(prototype)之一在 C++ 中如下所示

DLL_API void DLL_CALLCONV FreeImage_Initialise(BOOL load_local_plugins_only FI_DEFAULT(FALSE));

用 swig 转换成 Java 文件

public static void FreeImage_Initialise(SWIGTYPE_p_int32_t load_local_plugins_only)

如何从 java 传递这样的值?

我有很多类在函数中包含此类参数。有什么方法可以让我尽可能简单地将解决方案应用于处理数据类型的批量文件。

我读过一种方法是创建辅助函数,但我不能这样做,因为我有很多 C++ 类,并且为每个函数创建辅助函数以返回指针是行不通的。

如果可能,请提出任何其他方式。

最佳答案

自己解决了。 Swig 无法识别头文件中的所有 typedef,因此它在包装器中生成了那种类型。我需要在接口(interface)文件中重新定义它们。

关于java - 以指针为参数的 C++ 函数并使用 swig 接口(interface)处理它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19975468/

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