Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境。
这里再介绍下 Win32 Application 和 Win32 Console Application 之间的区别:
1、程序不同
Win32 Application 是标准 windows 程序,完全拥有 windows 的特性,可以通过鼠标点击窗口来完成控制。
Win32 Console Application 是控制台应用程序,类似于 MS-DOS 窗口,只能运行命令行程序,不具备消息响应机制。
2、入口函数不同
Win32 Application 入口函数是 WinMain(),它具有消息响应机制,可以运行图形化的 C++ 程序。
Win32 Console Application 入口函数是 main(),可以访问部分 windows API 函数,如果你编写传统的 C 程序,必须建立 Win32 Console 程序。
创建一个 win32 应用程序 工程,功能是显示一个消息框,随便提示一些文字就可以了。具体的创建工程的步骤可以参考:创建一个最简单的win32应用程序 。代码如下:
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
MessageBox(
NULL,
TEXT("随便提示一些内容就可以了!哈哈哈!"), // 内容
TEXT("这里是标题!"), // 标题名称
0);
return 0;
}
我们再看一下效果:
接下来我们从头开始剖析这个简单的小程序。
#include <Windows.h>
windows.h 是一个最重要的包含文件,它囊括了若干其他 Windows 头文件,其中的某些头文件又包含另外的一些头文件。
下列几个是最重要也是最基本的头文件:
WINDEF.H
基本数据类型定义。WINNT.H
支持 Unicode的类型定义。WINBASE.H
内核函数。WINUSER.H
用户界面函数。WINGDI.H
图形设备接口函数。这些头文件定义了 Windows 的所有数据类型、函数调用、数据结构以及常量标识符。
main 是 C 程序的入口,而 Windows 程序的入口是 WinMain,它总是这个样子的:
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR szCmdLine,
int iCmdShow)
WinMain 函数的返回值被定义为 int。WINAPI 标识符在 WINDEF.H 中定义,它规定了一种函数调用约定。而我们绝大多数 Windows 函数调用都定义成 WiNAPI。
我们再来研究一下它的参数部分:
最后我们看一下最主要的 MessageBox 函数。
MessageBox 函数是用来显示短信息的。尽管形式比较单一,MessageBox 所显示的小
小窗口实际上也是一个对话框。
我们也研究一下它的几个参数:
MessageBox的第一个参数通常是一个窗口句柄。我们先不管它。
第二个参数就是将要在信息框里出现的文本字符串。
第三个参数是将要在标题栏上显示的文本字符串。而且在这个程序中,我们把所有的字符串都打包到 TEXT 宏代码里面,就是用TEST("XXX")
把它包裹起来。一般来说,并不需要把所有的字符串都打包到 TEXT 宏代码里面,之所以这样做是因为这样在把程序转换成 Unicode 时会方便很多。
第四个参数是以前缀MB_
打头的一些常量的组合。WINUSER.H 中定义了这些相关常量。比如下面的这些,你可以任选一个来表示在对话框里希望用哪种按钮:
#define MB_OK 0X00000000L // ok
#define MB_OKCANCEL 0x00000001L // ok和取消
#define MB_ABORTRETRYIGNORE 0x00000002L // 中止、重试和取消
#define MB_YESNOCANCEL 0x00000003L // yes/no/取消
#define MB_YESNO 0X00000004L // yes和no
#define MB_RETRYCANCEL 0x00000005L // 重试和取消
参考:
原文:https://www.cnblogs.com/linuxAndMcu/p/12075196.html