(v13) Calling conventions
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP
Four calling-convention macro labels have been implemented:.
HQNCALL
RIPCALL
MPS_CALL
RIPFASTCALL
These are mostly the same definition, but are separate textually because of library reuse and modularity boundaries.
On 32-bit Windows these declarations are attached to every function that is exported from the Core DLL which involves a transfer of control into (or out of) the core. This provides flexibility and safety when integrating the Core DLL into customer developed applications. The compiler will use the default (cdecl) convention and compile the RIP code accordingly.
Without this description, the application skin could be compiled using a different convention from the Core DLL, and the customer code could try to call the alreadycompiled RIP code using the wrong stack-usage/argument-passing conventions. This could cause crashes or unexpected behavior.
When application developers want to use their own default calling conventions for their own code, the calling-convention declarations (RIPCALL
and MPS_CALL
) instruct the compiler to perform the necessary overrides.