WINAPI有什么用? 比如void WINAPI fun(),这样定义和没有WINAPI有什么区别? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 #define WINAPI __stdcallcalling convention 能不能具体解释一下MSDN上这样写:The __stdcall calling convention is used to call Win32 API functions. The callee cleans the stack, so the compiler makes vararg functions __cdecl. Functions that use this calling convention require a function prototype.但还是不太明白 其实calling convention没什么特别的,就是谁清除堆栈和参数压栈顺序问题(是最后一个参数先压栈,还是第一个参数先压栈) 谢谢回复那void aaa(int i)和void WINAPI aaa(int i)有什么差别?我看到别人代码里有WINAPI,但不知为何要这样用 一般来说对于你普通的函数可有可无,看你个人喜好。WINAPI表示_stdcall,没有的话则默认为_cdecl。比如有些地方明确需要你使用WINAPI调用约定,像窗口的回调、线程函数等等,这时候你就必须写明WINAPI。 MSDN上找到的:__cdecl 细节对于 C,__cdecl 命名约定使用以下划线 ( _ ) 开头的函数名;不执行任何大小写转换。除非声明为 extern "C",否则 C++ 函数将使用不同的名称修饰方案。__stdcall 细节__stdcall 函数的参数被从右到左推送到堆栈上,被调用函数在返回之前从堆栈中弹出这些参数。 icmp 数据截取 风之羽翼大哥请进,有问题请教! 做电子签章碰到的怪事,求助 如何给top菜单加上背景图片? 软件测试方案怎么写 有没有高人,能把PFX格式的证书在知道密码的前提下把私钥给解析出来? error LNK2001: unresolved external symbol __ 请高手指教 为什么VC会不清楚数据库格式?请各位高手指点! 请教一个关于数据库的问题 能不能把原来弹出的模态框变成子对话框 如何取得弹出文件对话框中文件夹的路径 MSXML 插入新结点的问题。
The __stdcall calling convention is used to call Win32 API functions. The callee cleans the stack, so the compiler makes vararg functions __cdecl. Functions that use this calling convention require a function prototype.但还是不太明白
void aaa(int i)
和
void WINAPI aaa(int i)
有什么差别?我看到别人代码里有WINAPI,但不知为何要这样用
比如有些地方明确需要你使用WINAPI调用约定,像窗口的回调、线程函数等等,这时候你就必须写明WINAPI。
对于 C,__cdecl 命名约定使用以下划线 ( _ ) 开头的函数名;不执行任何大小写转换。除非声明为 extern "C",否则 C++ 函数将使用不同的名称修饰方案。__stdcall 细节
__stdcall 函数的参数被从右到左推送到堆栈上,被调用函数在返回之前从堆栈中弹出这些参数。