Wskaźnik na funkcję w C++

0

Witam,
Mam problem ze wskaźnikiem na funkcję w C++.

Mam sobie następującą funkcję:

void CALLBACK m_1st_endp(HSYNC handle, DWORD channel, DWORD data, void *user)

Chcę utworzyćdo niej wskaźnik w argumencie metody:

void prepare_mixed_channel(DWORD, void (*)(HSYNC, DWORD, DWORD, void*), char*);

W momencie, gdy przekazuje argument do funkcji otrzymuje następujący komunikat o błędzie:
invalid conversion from 'void (*)(HSYNC, DWORD, DWORD, void*)' to 'void (*)(HSYNC, DWORD, DWORD, void*)'

Nie rozumiem tego komunikatu, co jest źle z moim wskaźnikiem jako argumentem w metodzie?

0

Już wiem: zabrakło CALLBACK.

0

Masz jakiś kiepski kompilator.

a.cpp(15) : error C2664: 'prepare_mixed_channel' : cannot convert parameter 2 from 'void (__stdcall *)(HSYNC,DWORD,DWORD
,void *)' to 'void (__cdecl *)(HSYNC,DWORD,DWORD,void *)'
        None of the functions with this name in scope match the target type
0

MinGW dołącząny do Qt 4.8.1. Ogólnie początkowo chciałem korzystać z VC++, ale był problem przy wywoływaniu destruktorów obiektów QModelIndexList czy jakoś tak. Znalazłem w bugzilli, że to występuje tylko na VC++. Po zainstalowaniu MinGW problemu nie ma na tym samym kodzie, więc tak już musi zostać.

0

Do Qt dołączają jakiegoś starego GCC ze względu na licencję (bo GPL3 jest evil). Nowszego trzeba sobie ściągnąć i przekompilować całe Qt... mnie się nie chciało.

0
Azarien napisał(a):

Nowszego trzeba sobie ściągnąć i przekompilować całe Qt...

Raczej nie. U mnie działa Qt 4.8.2 (skompilowane dla MinGW 4.4) z MinGW 4.6.2.

1 użytkowników online, w tym zalogowanych: 0, gości: 1