用@调用函数

时间:2017-02-11 15:43:41

标签: delphi dll

我需要从Delphi中的外部DLL调用函数,函数定义了调用的字节,我应该如何调用它们,在Delphi中声明它们时,它会显示它所期望的语法错误;而是得到了@

function _imp_Com@32(a1: INT64; a2: Pointer; a3: INT64; a4: Pointer;
 a5: INT64; a6: Pointer; a7: Pointer; a8: INT64): INT64 cdecl stdcall;external 'imp.dll';

function _imp_Decom@56(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';

1 个答案:

答案 0 :(得分:6)

您无法在名称中使用它,因此您需要使用有效的标识符导入该函数。像这样:

function imp_Com(...): Int64; stdcall; external 'imp.dll' name '_imp_Com@32';

一个函数不能同时是cdecl和stdcall。不确定代码中的内容。根据名称装饰,这些功能是stdcall。