[英]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.