公司建设网站的分录,成都网站建设开发,网络品牌营销的基础是,营销型企业网站群策略上一篇我们已经介绍了关于窗口程序的一些基本知识。从本篇开始我们将正式进入C win32的学习中去。 正文
窗口创建过程 定义WinMain函数 定义窗口处理函数(自定义#xff0c;处理消息) 注册窗口类#xff08;向操作系统写入一些数据#xff09; 创建窗口#xff08;内存… 上一篇我们已经介绍了关于窗口程序的一些基本知识。从本篇开始我们将正式进入C win32的学习中去。 正文
窗口创建过程 定义WinMain函数 定义窗口处理函数(自定义处理消息) 注册窗口类向操作系统写入一些数据 创建窗口内存中创建窗口 显示窗口绘制窗口的图像 消息循环获取/翻译/派发消息 消息处理 上一篇文章我们只是简单的了解了一下WinMain函数的写法。这次我们将深入的了解此函数 WinMain函数
在了解之前我们需要知道的是什么是入口函数它有什么作用 入口函数就是程序运行时候最开始调用的函数具体来说它指定编译器或者其他类似工具如何开始编译一个程序因此用户现在可以在编译时运行一些预处理和初始化步骤。即使没有入口函数一个项目也可以被编译器编译但是没有入口函数也不能使编译器进行任何必要的预处理和初始化步骤并且编译后可能会有一些问题。 int WINAPI WinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPSTR lpCmdLine,_In_ int nShowCmd);HINSTANCE hinstance 表示应用程序当前的实例句柄在windows程序中句柄无非就是一个数值 HINSTANCE hPrevInstance表示应用程序上一个实例的句柄。 LPSTR lpCmdLine指向应用程序命令行参数字符串的指针不包括可执行文件名。 int nCmdShow指定应用程序最初如何显示例如在任务栏上正常显示、最大化到全屏显示或最小化显示。 在上面我们可以看到WinMain 前有一个WINAPI 那么这个WINAPI 是什么意思呢接下来就介绍一下。 WINAPI 头文件中的定义如下
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define APIPRIVATE __stdcall
#define PASCAL __stdcall
#define APIENTRY WINAPI可以看出上面定义的宏 都指向了 _stdcall ,那么无问题来了什么是_stdcall 是一种函数调用约定也称为标准调用约定。函数调用约定描述函数参数的传递方式和由谁来平衡堆栈在程序中调用一个函数时函数参数的传递是通过堆栈进行的也就是说调用者把要传递给函数的参数压入堆栈函数在执行过程中从堆栈中取出相应的参数使用。
结尾 在这里我们简单的介绍了什么是WinMain函数之后的文章我们会依次介绍窗口创建过程的其他步骤。