C ++ compiler when the function name modified rules of engagement:
__stdcall calling convention:
"?" 1, in order to identify the beginning of the function name, followed by the function name;
2, after the function name to start the "@@ YG" identifies the parameter list, followed by the parameter list;
3, the code represents the parameter list:
the X-- void
D --char
E - unsigned char
F. - Short
H - int
the I - unsigned int
J - Long
K - unsigned Long
M - a float
N - Double
_N - BOOL
....
PA - represents pointer, the back pointer indicating the type of the code, if the same type of consecutive pointer to "0" instead of a "0" represents the first iteration;
4, the first parameter table for the return type of the function, followed by the data type of the parameter pointer identifies the type of data to which it refers before;
5, after the parameter table to "@Z" end of the whole identification name, if the function has no parameters, places the end of the "Z" logo.
The format is "? Functionname @@ YG ***** @ Z" or "? Functionname @@ YG * XZ",
For example:
? Test1 int (char * var1, unsigned Long) ----- Test1 @@ @ the Z-YGHPADK
void Test2()-----"?Test2@@YGXXZ"
__cdecl calling convention:
rule calling convention with the above _stdcall, is just the beginning of a table identifies the parameters above "@@ YG" becomes "@@ YA".
__fastcall calling convention:
rule calling convention with the above _stdcall, is just the beginning of a table identifies the parameters above "@@ YG" becomes "@@ YI".
If you use a DEF file output "C ++", post the data to be output and modifications are written to members of the .def module definition file