Utilització d'ECInvoke
ECInvoke
va ser desenvolupada principalment per al compilador ml64,
atès que
no té la directiva Invoke.
Tantmateix,
també es pot utilitzar amb els compiladors AsmC,
JWasm,
UAsm64 i PoAsm en projectes de
64 bits, tot i que
és preferible fer servir el seu
propi Invoke
quan sigui possible. ECInvoke
funciona igual que Invoke
però no fa cap comprovació de
paràmetres. L'ús d'ECInvoke
garanteix que el punter de la
pila (Rsp)
estigui sempre aliniat
a 16 bytes, evitant molestos bloquejos quan es criden funcions de
l'API.
Per als compiladors ml64, AsmC,
JWasm
i Uasm64 podeu utilitzar ECInvoke
tal com ho feieu amb Invoke,
però per al PoAsm hi ha una
diferència que cal tenir en compte.
Els arguments complexos han de estar entre els símbols <
i
>, per exemple:
ECInvoke
SetWindowText,
hWnd, <TextStr("Hello")>
ECInvoke
GetSystemDirectory,
lpszBuffer,
<MAX_PATH - 1>
Tots els arguments que tinguin carácters com (, ), ", ', +, -, etc., han d'estar entre < i >. Altrament, el PoAsm generarà l'error corresponent.
OBSERVACIONS:
Recordeu que ECInvoke
només està disponible per als projectes de 64
bits del Masm, AsmC,
JWasm, UAsm64 i PoAsm,
i que els símbols <
i > només són
necessaris per al
compilador PoAsm.