@softshape

Как эта C-функция должна выглядеть на Delphi?

Всем привет,

имеется программа на Delphi, вызывающая DLL от Сбербанка. В одной из сберовских функций используется коллбэк, который непонятно как корректно перевести на Delphi.

Функция: __declspec(dllexport) int SetGUIHandles(int hwndText, int hwndEdit)

Далее цитата из документации -

Если установить второй параметр функции SetGUIHandles() в 0, то первый будет интерпретироваться как адрес callback-функции для вывода сообщений. Callback-функция должна иметь следующий вид (пример на Borland C++ Builder):
#define ICMD_DISP_STRING_1 1
#define ICMD_DISP_STRING_2 2

int HalDispFunc(int cmd, char* par1, int par2)
{
char buf2[256];

buf2[0] = 0;
if(par1)
strcpy(buf2, par1);

switch(cmd){
case ICMD_DISP_STRING_1:
if(par2 <= 3)
Form1->StaticText1->Caption = buf2;
else
Form1->StaticText3->Caption = buf2;
break;
....

return 0;
}


Самое тут непонятное, как корректно перевести заголовки функций и оформить вызов SetGUIHandles с коллбэк-функцией. Хэлп!
  • Вопрос задан
  • 638 просмотров
Решения вопроса 1
@akileev
Java / Scala developer
Объявление функций:
function SetGUIHandles(HWndText: Integer; HWndEdit: Integer): Integer; stdcall; external 'Имя DLL';
function HalDispFunc(Cmd: Integer; Par1: Pointer; Par2: Integer): Integer; stdcall;


Пример вызова:
SetGUIHandles(Integer(@HalDispFunc), 0);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы