【发布时间】:2025-11-27 23:55:02
【问题描述】:
我已经创建了 swig 接口文件来为我的 C++ 文件创建 JNI。但是我的一些 C++ 文件包含接受指针作为参数的函数,例如 (void*) ,C++ BOOL 和 Swig 将其转换为 type like SWIGTYPE_p_int32_t 如何从 java 传递这种数据类型?
例如,函数的实际原型之一如下 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++ 类,并且为每个函数创建返回指针的辅助函数是不可行的。
如果可能,请建议任何其他方式。
【问题讨论】:
标签: java c++ java-native-interface swig freeimage