Typedef для существующей функции DLL возвращает ошибку функции - PullRequest
0 голосов
/ 10 февраля 2012

Я хочу использовать DLL в моей программе, которая имеет функцию

void Set_Callback(Function Pointer)

Пример кода вставляет typedef, который явно не работает с моим VS C ++ 2010

typedef void (SET_CALLBACK)(void far pascal (*lpfnPtr)(int));

Для этой строки я получаю синтаксическую ошибку «*», а «функция возвращает функцию».

спасибо за вашу помощь заранее

Ответы [ 2 ]

1 голос
/ 10 февраля 2012

Его легче понять и прочитать, если разбить его на две typedef:

typedef void (__stdcall * Function)(int);
typedef void (* SETCALLBACK)(Function pf);

в первом typedef, pascal становится __stdcall (как pascal для старых 16-битных систем)и far можно отбросить, так как это излишне в 32/64-битных архитектурах

0 голосов
/ 10 февраля 2012

должно быть

typedef void far pascal (*CallbackType)(Function*);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...