[英]Callback to SWIG class C++ to Java
我遇到了一些从C ++到Java的SWIG绑定问题。 基本上,我使用在Java中扩展的回调函数来调用绑定类。 这是个主意:
binded.h
class callback {
public:
virtual void f(){
std::cout<<"Not implemented"<<std::endl;
}
}
extern void create(callback *callback);
按照常规步骤,使用SWIG将binded.h包装到java类中
%{
#include "binded.h"
%}
%include "binded.h"
然后在java中
public class ExtendedCallback extends callback
{
public void f(){
//code
}
public void run(){
create(this);
}
}
并且run()的结果是“未实现”。 似乎函数f的扩展未在使用“默认”函数的C ++包装函数中更新。
根据我在SWIG文档http://www.swig.org/Doc2.0/SWIGDocumentation.html#SWIG_nn30中阅读的内容,似乎我需要某种方式告诉SWIG它将在回调中接收一个类,但是我可以没有看到用类而不是像文档中那样使用函数的方式。
有什么线索吗?
提前致谢
SWIG的Java部分使用包装命名董事的回调: http : //www.swig.org/Doc2.0/Java.html#java_directors
接口文件将类似于:
%module(directors="1") modulename
%{
#include "binded.h"
%}
%feature("director") callback;
%include "binded.h"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.