c 通过java对象回调java_将java函数注册为C函数中的回调函数

我试图通过使用SWIG 1.3在

Java中实现一些C代码.现在我

必须将一些现有的C重建为Java代码并提供一个功能

指向C函数的Java函数的指针.

C代码:

net.c:

void register_message_handler( context_t *ctx, message_handler_t handler) {

context->msg_handler = (void (*)( void *, coap_queue_t *, void *)) handler;

}

client.c:

void message_handler(context_t *ctx, queue_t *node, void *data) {

...

}

int main(int argc, char **argv) {

// setup ctx

register_message_handler( ctx, message_handler );

}

我在Java中已经拥有的是:

public static void message_handler(def.SWIGTYPE_p_context_t ctx, def.SWIGTYPE_p_queue_t node, String data ) {}

这应该以与在中完成相同的方式注册为回调

以上C代码,现在是Java:

net.register_message_handler(ctx, message_handler);

我发现的是

http://www.swig.org/Doc1.3/SWIGDocumentation.html#SWIG_nn30包括一个

本章末尾的未定义参考:

“现在,关于函数指针支持的最后一点说明.虽然SWIG没有

通常允许回调函数用目标语言编写,这个

可以使用类型映射和其他高级SWIG功能来完成.

这将在后面的章节中描述.​​“

这指的是哪里?

谢谢你的帮助.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值