"callback" v C++Builderu
mám takovýto nějaký kód, překladač hlásí chybu na řádku v hlavní části "Could not find a match for 'myfce(int,void)'"
Vyzkoušel jsem několik kombinací hvězdiček, závorek a přetypování ale nic nepomohlo,
proto prosím, poraďte.
typedef void __fastcall ( * clbk) (int n);
int __fastcall myfce (int count, clbk fce )
{
... neco ...
fce(58);
... neco ...
)
void __fastcall AAA (int n);
{
... neco ...
}
... hlavni cast ...
myfce( 1, AAA ); //// chyba
Kĺúčové slovo __fastcall patrí k menu funkcie, nie k typu návratovej hodnoty.
Predpokladám, že nesprávna uzatváracia zátvorka tela funkcie myfce a bodkočiarka navyše medzi deklaráciou a telom funkcie AAA vznikli pri prepisovaní kódu.
Správny inžiniersky prístup.
Návratový typ je void, to "clbk" je název typu. Cílem je, abych v hlavním programu dynamicky určil, co se ma zavolat z funkce "myfce". Přesunutí "__fastcall" do závorky nepomohlo. Princip je podobný jako Event u komponenty ale nějak to nemůžu dát dohromady.
Jo, jo.
Tak už jsem na to přišel. Kód je dobře, až na to, že to "AAA", které jsem tam cpal v hlavní části, je vlastně member funkce formuláře. Stačilo dát "AAA" bokem a je to.