__closure和__stdcall区别

来源:互联网 发布:融信普惠网络借贷信息 编辑:程序博客网 时间:2024/06/06 09:05
__closure和__stdcall虽然都是可以用来修饰函数指针的,但是方向是不同的,   
  __stdcall修饰函数的调用方式,__closure是指修饰函数为成员函数。   
    
  举个具体的例子,   
  int   __stdcall   GlobalFunc(int,   int);   //1   
    
  class   SomeClass   
  {   
        int   __stdcall   MemberFunc(int,   int);   //2   
  };   
  注意,1和2中的函数类型是不同的,并且是不兼容的。   
  其中,函数2被编译器解析为   
  int   __stdcall   SomeClass_MemberFunc(SomeClass*   const   this,   int,   int);   
  函数的名称也会被编译器粉碎的。   
  所以,   
  函数1的类型为int   __stdcall   (*)(int,   int);   
  函数2的类型为int   __stdcall   (SomeClass::*)(int,   int);   
  其中的SomeClass::就相当于__closure关键字的作用。   
  被__closure修饰的函数必定为某个类的成员函数。
0 0
原创粉丝点击