2 votes

Appel de fonctions avec @

J'ai besoin d'appeler des fonctions à partir d'une DLL externe dans Delphi, la fonction a défini les octets d'appel, comment dois-je les appeler, sur la déclaration de ces fonctions dans Delphi, il montre une erreur de syntaxe qu'il s'attendait à ; au lieu de cela a obtenu @

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';

6voto

David Heffernan Points 292687

Vous ne pouvez pas l'utiliser dans le nom. Vous devez donc importer la fonction en utilisant un identifiant valide. Comme ceci :

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

Une fonction ne peut pas être à la fois cdecl et stdcall. Je ne suis pas sûr de ce que cela signifiait dans votre code. D'après la décoration du nom, ces fonctions sont stdcall.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X