Dll导出的symbols每个编译器的实现都不一样,
Symbols 主要与函数调用方式,以及extern "C" 链接指示符,以及参数列表,函数返回值有关。
1. 函数调用方式。
__stdcall ,__cdecl.的区别。
参数压栈方式不同。前者是被调用函数自身负责自己参数的压栈,
这样的话,__stdcall就不支持可变参数列表,例如pri
在__stdcall方式下,将会生成更小的可执行程序。因为在
2. 一个c++ 函数将会以c++ 的name mangling方式导出函数符号。如果我们不想以c++的这种
Note:
个人感觉采用c的导出方式主要在于动态调用dll的时候。
实际导出symbols不只是受c++的name mangling 或非c++的name mangling方式,其还与函数的调用方式有关,例如__
__stdcall是c++的标准函数调用,