2017-02-11 2 views
2

Мне нужно вызвать функции из внешней DLL в Delphi, функция определила байты вызова, как я их вызываю, объявляя их в Delphi, он показывает ожидаемую синтаксическую ошибку; вместо этого получено @Вызывающие функции с помощью @

function [email protected](a1: INT64; a2: Pointer; a3: INT64; a4: Pointer; 
a5: INT64; a6: Pointer; a7: Pointer; a8: INT64): INT64 cdecl stdcall;external 'imp.dll'; 

function [email protected](a1_compbuf: Pointer; a2_clen: INT64; 
     a3_out: Pointer; a4_outlen: INT64; a5_crcflag: INT64; a5u: INT64; 
     a6_verb: INT64; a7_dict: Pointer; a8_dictsize: INT64; a9_cb: Pointer; 
     a10: INT64; a11: Pointer = 0; a12: INT64 = 0; a14: INT64 = 0) 
     : INT64 cdecl stdcall;external 'imp.dll'; 

ответ

6

Вы не можете использовать это в названии, чтобы вам нужно было импортировать функцию с использованием действительного идентификатора. Например:

function imp_Com(...): Int64; stdcall; external 'imp.dll' name '[email protected]'; 

Функция не может быть как cdecl, так и stdcall. Не уверен, что это было в коде. Основываясь на украшении имен, эти функции являются stdcall.

Смежные вопросы