Question

What does the number 16 in the DLL symbol _FooBar@16 represent?

Was it helpful?

Solution

It means that _FooBar is a __stdcall function that takes 16 bytes of parameters.

32-bit calling conventions on x86 are described here: http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx

OTHER TIPS

This is general name mangling and depends upon the calling convention of the function.

The various calling conventions and name mangling applied to functions is documented as Argument Passing and Naming Conventions. You will have to click the individual links to see the exact mangling applied.

In your case, you have a __stdcall convention which uses the following naming 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

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top