__cdecl Calling Convention

The __cdecl linkage is very similar to the OS/2 __System linkage convention. All general purpose registers are preserved except for EAX, ECX, and EDX. Note that, unlike the OS/2 _System linkage, the number of dwords used to store parameters is not passed in AL.

To use this linkage convention, use the __cdecl keyword in the declaration of the function. You can make __cdecl the default linkage by setting the /Mc compiler option.

The following rules apply to the __cdecl calling convention:

When building export or import lists in module definition files, the decorated version of the name should be used. This is automatically handled when using #pragma export and #pragma import.

When building export or import lists in module definition files, the decorated version of the name should be used. This is automatically handled when using #pragma export and #pragma import. If you use undecorated names in the module definition file, you must give the object files to the ILIB utility along with the module definition file. ILIB will use the object files to determine how each name ended up after decoration.



Calling Conventions


Examples Using the __cdecl Calling Convention
ILIB Objects