перевести c заголовочный файл в delphi 2006 - PullRequest
2 голосов
/ 22 ноября 2010

Как перевести эту декларацию?

typedef void (CALLBACK *pCompletePlay)(LONG lvrPlayHandle, LONG lUserData);

Спасибо.

Ответы [ 3 ]

2 голосов
/ 22 ноября 2010

type pCompletePlay = procedure( lvrPlayHandle, lUserData: longint ); stdcall;

1 голос
/ 22 ноября 2010

На естественном языке это объявление означает: «Be pCompletePlay указатель на функцию, которая имеет два параметра long , используя соглашение о вызовах stdcall», так как макрос CALLBACK определен в

#define CALLBACK    __stdcall

в windef.h.

Объявление Delphi для этого будет:

type
  pCompleteplay : procedure( lvrPlayHandle, lUserData : LongInt);stdcall;
0 голосов
/ 22 ноября 2010

Ничего особенного.pCompletePlay - просто тип указателя на функцию, который указывает на void (*) (LONG, LONG);

Итак, когда вы пишете: pCompletePlay foo;// foo - это такая же функция, как вы объявляете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...