还有一个值得一提的是winapi宏,它可以被翻译成适当的调用约定以供函数使用。该宏定义于windef.h之中。下面是在windef.h中的部分内容:
#define cdecl _cdecl
#define winapi cdecl
#define callback __stdcall
#define winapi __stdcall
#define apientry winapi
由此可见,winapi、callback、apientry等宏的作用。
2.名称修饰(name decoration)
c或c++函数在内部(编译和链接)通过修饰名(decoration name)识别。函数的修饰名是编译器在编译函数定义或者原型时生成的字符串。编译器在创建.obj文件时对函数名称进行修饰。有些情况下使用函数的修饰名是必要的,如在模块定义文件里头指定输出c++重载函数、构造函数、析构函数,又如在汇编代码里调用c或c++函数等。