С++ Определение указателя функции

125
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 6 месяцев, 1 неделя назад
1
Решение
99

Благодаря комментариям @OliCharlesworth и @user814628, я решил свою проблему.

Правильный код должен быть:

LONG (CWilExtender::* function)(LPSTR,LPVIPERVAR4,LONG)=&CWilExtender::DllVarHandler;

Спасибо, что так быстро помогли!

ответил(а) 2021-01-19T15:34:47+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема