我遇到了从C ++到Java的一些SWIG绑定问题。基本上,我用一个我在java中扩展的回调调用一个带绑定的类。这就是这个想法:
binded.h
class callback {
public:
virtual void f(){
std::cout<<"Not implemented"<<std::endl;
}
}
extern void create(callback *callback);
binded.h使用SWIG封装到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 ++ wraped函数中更新。
根据我在SWIG文档中读到的http://www.swig.org/Doc2.0/SWIGDocumentation.html#SWIG_nn30似乎我需要一些方法来告诉SWIG它将在回调中接收一个类,但是我看不到用类替代它的方法使用类似的功能在文档中完成。
有任何线索吗?
提前致谢
答案 0 :(得分:1)
SWIG的Java部分使用包含命名控制器的回调:http://www.swig.org/Doc2.0/Java.html#java_directors
接口文件将类似于:
define('WP_USE_THEMES', false);
require __DIR__."/../public/wordpress/wp-blog-header.php";