我尝试将以下代码组合在一起: SWIG typemap uint8_t* from C/C++ to java.nio.ByteBuffer
要将java.nio.ByteBuffer从java传递到std :: array&进行C ++调用。
我想做类似的事情,然后在https://stackoverflow.com/users/168175/flexo中回答 How to use SWIG to wrap std::function objects?用于std :: function(但我可以接受简单的答案)。
尤其是我希望可以为
实现java的Java回调类。std::function<void(const std::vector<uint8_t> &)>
在C ++方面
uint32_t registerForEvent(const std::vector<uint8_t> &event, std::function<void(const std::vector<uint8_t> &)> process)
并通过c ++调用该函数,并让java端能够覆盖/实现该调用:
public class myCallback extends Callback {
public void call(java.nio.ByteBuffer data) {
/* do something with data */
}
}
我想我需要像这样使用env-> NewDirectByteBuffer(ptr,size) SWIG typemap uint8_t* from C/C++ to java.nio.ByteBuffer 从C ++发送的std :: vector&初始化,以发生在param / unpack / lvalref / forward中。
使用通用的VA_ARGS宏是否有偷偷摸摸的方法来实现这一目标? 甚至只是我对特定std :: function:
的简单案例的一次拍摄