我有一个像这样的 C 函数。
void useData(char* buf) {
// TODO.....
}
通过 swig 我成功地生成了这个。
public static void useData(SWIGTYPE_p_char buf) {
// SWIG stuff....
}
现在这有效了,但有时我想传递 ByteBuffer
而不是 SWIGTYPE_p_char
。
通过另一个类型映射,我成功地生成了这个。
public static void useData(ByteBuffer buf) {
// SWIG stuff....
}
这可行,但我的新类型映射会覆盖旧类型映射,并且我无法再使用 SWIGTYPE_p_char
调用该函数。
我的目标是生成 useData
函数的两个入口点,一个采用 ByteBuffer
,另一个采用 SWIGTYPE_p_char
。
我已经用谷歌搜索并阅读文档好几天了,但我找不到任何东西。
这是我可以使用 SWIG 实现的吗?或者我缺少什么?我非常感谢指针、特定文档或替代搜索词。
编辑:
使用 ByteBuffer
类型映射,SWIG 仅生成 ByteBuffer
,但不生成 SWIGTYPE_p_char
。我正在尝试让它同时生成两者。
最佳答案
您可以保留这两个生成的函数。从 java 方面来说这是完全有效的。
关于java - 如何为单个 C 函数生成多个包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59805024/