С++ Определение указателя функции
121
7
Я пытаюсь создать указатель функции на другую функцию в c++.
Это то, что у меня есть до сих пор:
LONG (*function)(LPSTR,LPVIPERVAR4,LONG)=&CWilExtender::DllVarHandler;
Когда я пытаюсь скомпилировать свою программу, я получаю эту ошибку:
.\MyExtender.cpp(132) : error C2440: 'initializing' : cannot convert from
'LONG (__thiscall CWilExtender::* )(LPSTR,LPVIPERVAR4,LONG)' to
'LONG (__cdecl *)(LPSTR,LPVIPERVAR4,LONG)'
There is no context in which this conversion is possible
Я не знаю, как был определен DllVarHandler, и я не знаю, как воспроизвести тип для указателя функции.
Как изменить (_cdecl *)
для соответствия (__thisscall CWilExtender::*)
?
В частности, что означает LONG (__thiscall CWilExtender::* )(LPSTR,LPVIPERVAR4,LONG)
и как я могу написать это как тип указателя функции?
Благодарю.
спросил(а)
2021-01-19T15:34:47+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Решение
96
Благодаря комментариям @OliCharlesworth и @user814628, я решил свою проблему.
Правильный код должен быть:
LONG (CWilExtender::* function)(LPSTR,LPVIPERVAR4,LONG)=&CWilExtender::DllVarHandler;
Спасибо, что так быстро помогли!
ответил(а)
2021-01-19T15:34:47+03:00
2 месяца, 3 недели назад
добавить комментарий
пожаловаться
Ваш ответ