使用SWIG

时间:2018-07-17 16:17:25

标签: java c++ swig

我尝试将以下代码组合在一起: 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:

的简单案例的一次拍摄

0 个答案:

没有答案