這個問題是關於C++
,但它與Arduino交互,由於我不是一個軟件傢伙,我會很樂意得到任何其他人的看法。 我已經知道它出了一個舒適的區域,並會吸引仇敵,但如果你想幫助我弄清楚如何做到這一點,將不勝感激。從Arduino傳遞函數指針到C++
在Arduino
,用戶創建了一個類的一個實例,並設置其委託方法:
Arduino main program:
//instance
Main interpreter;
//set delegate
interpreter.setDelegate(intepreterDelegate);
//delegate function
float intepreterDelegate(char *arg){return 3;}
Main
類,然後創建另一個類的實例,叫做Sub
等:
Sub - > send delegate to Main-> send delegate to Arduino
Main
類確實獲得來自Sub的代表消息:
Main.h
//being called from the sub
static float fromSubDelegate(char *arg){
// *Here I am trying to push forward this delegate out to the user on arduino
Main. b;
float result = (b.*b.fpAction)(arg);
return result;
};
float (Main.::*fpAction)(char*) = 0 ;
void setDelegate(float(*fp)(char*));
問題是這裏 - 上Main.cpp
其中I設置委託
//arduino set this delegate of the main class .cpp
void Main.::setDelegate(float(*fp)(char*))
{
fpAction = fp; // *gives error because fpAction is a member function
}
我已經提供的所有數據I HAVE。 我不是一個C++程序員,所以我可能是做錯了事情,所以 我要求幫助
你應該標記他的帖子作爲答案然後 – djUniversal