I am new to Windows programming.
What does the number 16 in the DLL symbol _FooBar@16
represent?
I am new to Windows programming.
What does the number 16 in the DLL symbol _FooBar@16
represent?
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
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