我試圖在使用rti connext作爲通信服務的涼亭中設置一個模擬,以將一些參數傳輸到外部軟件。在編譯時不知道父類的情況下傳遞一個加括號的函數指針
爲此,我需要在新數據實例到達時,通過傳遞函數指針傳遞給subscriber_init來初始化通信。
subscriber.h
void (*callback)(int i);
int subscriber_init(int domainId, char* topicName, callback cbPointer);
通過任何C文件,其中包含的subcriber.h調用此沒有問題。但是,如果我嘗試在課堂上設置我的溝通,問題就會開始擡頭。
Plugin.cxx
#include subscriber.h
class Plugin{
void load(){
callback cbPointer = &Plugin::handler;
subscriber_init(0,"Topic",cbPointer);
}
void handler(int i){
//do someting
}
}
這給了我在
error: cannot convert ‘void (Plugin::*)(int)’ to ‘callback {aka void (*)(int)}’ in initialization callback cpPointer = &Plugin::handler
形式的錯誤我怎樣才能使一個typedef不知道在優勢傳遞函數指針的父類?
免責聲明:未編制的例子,只是爲了清楚什麼,我試圖做
由於錯誤提示,方法指針與函數指針不兼容。 – jxh
你能澄清你的要求嗎?你能改變'subscriber_init'的定義方式嗎? int i'參數的目的是什麼? 「i」參數代表什麼? – jxh