/*
只写声明,不写实现,然后直接调用,查看错误提示
void __cdecl foo(int)" (?foo@@YAXH@Z)
void __cdecl foo(int,int)" (?foo@@YAXHH@Z)
void __cdecl foo(char,short,int,__int64)" (?foo@@YAXDFH_J@Z)
void __cdecl foo(unsigned char,unsigned short,unsigned int,unsigned __int64)" (?foo@@YAXEGI_K@Z)
void __cdecl foo(float,double)" (?foo@@YAXMN@Z)
void __cdecl foo(void)" (?foo@@YAXXZ)
int __cdecl foo(void)" (?foo@@YAHXZ)
void __cdecl foo(void)" (?foo@@YAXXZ)
void __stdcall foo(void)" (?foo@@YGXXZ)
void __fastcall foo(void)" (?foo@@YIXXZ)
void __fastcall N1::N2::N3::foo(void)" (?foo@N3@N2@N1@@YIXXZ)
public: void __fastcall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@QAIXXZ)
public: void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@QAEXXZ)
private: void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@AAEXXZ)
protected: void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@IAEXXZ)
protected: virtual void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@MAEXXZ)
public: virtual void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@UAEXXZ)
private: virtual void __thiscall N1::N2::N3::C::foo(void)" (?foo@C@N3@N2@N1@@EAEXXZ)
private: virtual void __thiscall N1::N2::N3::C::foo(int)" (?foo@C@N3@N2@N1@@EAEXH@Z)
private: virtual bool __thiscall N1::N2::N3::C::foo(int)" (?foo@C@N3@N2@N1@@EAE_NH@Z)
private: virtual bool __thiscall N1::N2::N3::C::foo(bool)" (?foo@C@N3@N2@N1@@EAE_N_N@Z)
开头的?可能是开始标志,末尾的@Z可能是结束标志
?函数名@最内层命名空间@中间一层命名空间@最外层命名空间@@函数类型 调用约定 返回类型 参数1类型 参数2类型 参数n类型@Z
如果没有参数,@Z变为Z
函数类型:
A private函数
E private virtual 函数
I protected函数
M protected virtual 函数
Q public函数
U public virtual 函数
Y 普通函数
调用约定:
A __cdecl
E __thiscall
G __stdcall
I __fastcall
数据类型:
D char
E unsigned char
F short
G unsigned short
H int
I unsigned int
_J __int64
_K unsigned __int64
M float
N double
_N bool
X void
*/