In order to call a function in a third party DLL, it needs to meet many of the same requirements of a DLL you would build yourself. The function must be exported using APIENTRY calling convention. The APIENTRY is a refine of WINAPI which in turn is defined as __stdcall. This means:
Argument-passing order |
Right to left. |
Argument-passing convention |
By value, unless a pointer or reference type is passed. |
Stack-maintenance responsibility |
Called function pops its own arguments from the stack. |
Name-decoration convention |
An underscore (_) is prefixed to the name. The name is followed by the at sign (@) followed by the number of bytes (in decimal) in the argument list. Therefore, the function declared as int func( int a, double b ) is decorated as follows: _func@12 |
Case-translation convention |
None |