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.