分享

C++ 学习笔记2

 fisher60 2012-04-13

1、在windows程序中,经常会用到这种位标志标识符,如:style = CS_HREDRAW | CS_VREDRAW ; CS_HREDRAW  = 0x0001 ; CS_VREDRAW  = 0x0002;

2、窗口过程函数:是一个回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时,由另一方调用的,用于对该事件或条件进行响应。

3、回调函数的使用方法

      1)定义一个回调函数。

      2)定义方,在初始化时,将回调函数的指针传注册给调用者。

      3)  当事件或条件发生时,调用者使用指针回调该函数。

4、_cdecl 和 _stdcall

__cdecl 是C DECLaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不会要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。

  _stdcall 是StandardCall的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retnX,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个数,并且调用者必须严格的控制参数的生成,不能多,不能少,否则返回后会出错。

int  WINAPI  WinMain(
  HINSTANCE hInstance,      // handle to current instance
  HINSTANCE hPrevInstance,  // handle to previous instance
  LPSTR lpCmdLine,          // command line
  int nCmdShow              // show state
)

【说明】

#define WINAPI     __stdcall

typedef  CHAR  *LPSTR,  *PSTR;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多