今天看到_stdcall,不是很明白,便查了下资料,得到了两点:
1、win api 的调用方式是_stdcall
2、c和c++默认的是_cdecl(应该是吧~)
那么这些调用方式到底是在哪里实现的呢?
编写了一个简单的dll,里面有个导出函数,定义为_cdecl。然后写了个c的exe,使用LoadLibrary和GetProAccess去调用,能够正常调用。
在exe中使用typedef更改导出函数的掉用方式,再进行测试,仍然正常。
再把dll中的导出函数修改为_stdcall,运行exe,调用错误。
看来是在函数编译的时候就确定了调用方式,使用typedef是不能够修改调用方式的。