Cześć,
Wieki nie miałem już nic wspólnego z C++, stąd moje pytanie. Dzieci znajomej mają problem, muszą wywołać funkcję z dll-ki której trzeba podać jako parametr funkcję callback.
I wszystko byłoby ok gdyby nie to, że chcą przekazać metodę klasy. Wydaje mi się, że w "normalny" sposób jest to nie do zrobienia. Ale jak wspomniałem, wieki nie pisałem nic w C++, po prostu nie pamiętam.
Poniżej krótki fragment kodu który myślę, że może pokazać problem. Zakomentowane jest przypisanie metody do wskaźnika funkcji ;)
Z góry dzięki za info.
#include "stdafx.h"
#include <conio.h>
typedef int(*nazwaTypuT)(int, int);
int funkcjaX(int a, int b)
{
return(a + b);
}
class Klasa
{
public:
nazwaTypuT pWskaznikNaFunkcje;
int metoda(int a, int b)
{
return(a+b);
}
int metoda2(int a, int b)
{
//pWskaznikNaFunkcje = metoda; // to nie ma prawa zadziałać bo to metoda,
pWskaznikNaFunkcje = funkcjaX; //a to zadziała
return ( pWskaznikNaFunkcje(5, 7) );
}
};
int main()
{
Klasa* instancjaKlasy = new Klasa;
printf( "%i\n", instancjaKlasy->metoda(1, 2) );
printf("%i\n", instancjaKlasy->metoda2(1, 2));
getch();
return 0;
}