在什么时候,函数定义时前面要加上__stdcall

解决方案 »

  1.   

    __stdCall是一种函数调用方式,函数有几种不同的调用方式,涉及到调用函数和被调动函数
    见的一种约定,包括参数的压入栈中的顺序,栈由谁负责清空等约定。你可以参考一下MSDN,
    CALLBACK 实际上就是__stdcall
      

  2.   

    为什么callback函数就要用_stdcall哪?
      

  3.   

    _stdcall告诉编译器参数的传递约定。参数的传递约定是指参数传达时的顺序(从左到右或从右到左)和由谁恢复堆栈指针(调用者或被调用者)。在Win16下有两种约定:C 和 PASCAL。C 约定规定参数传递顺序是从右到左,即最右边的参数最先压栈,由调用者恢复堆栈指针。WINAPI (实际上就是PASCAL,CALLBACK,_stdcall),参数传递顺序是从左到右,由被调用者恢复堆栈。
       什么是回调函数呢?回调函数就是能对一系列系统内部元素执行给定操作的API函数,例如能对所有同类窗口进行操作的函数。每当调用Windows API函数或传递一个回调函数给系统时,Windows 要求程序员遵循stdcall调用协定。
      

  4.   

    具体涉及到要调用的函数名称的改变的问题时候要注意
    如dll中的函数