什么是Win32API
就是Windows操作系统已经设计好的函数,方便我们程序调用,我这里的环境是32位xp,在C:\WINDOWS\system32下所有的.dll文件都是API。
几个重要的DLL
- Kemel32.dll:最核心的功能能模块,比如管理内存、进程和线程相关的函数等。
- User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送信息等。
- GDI32.dll:全称是Graphical Device Interface(图形黑色被接口),包含用于画图和显示文本的函数。
关于Win32的数据类型
例子:
// 2020_04_08.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
void main()
{
int Messagebox(
HWND hWnd, //handle to owner window
LPCTSTR lpText, //text in message box
LPCTSTR lpCaption, //message box title
UINT uType //message box style
);
return;
}
这里看似有很多新类型,不懂得我们就点一下那个类型,然后F12看一下它原来的模样,比如这个UINT:
在Win32中使用字符串
在Win32中程序也有自己的字符编码:
CHAR szStr[] = "hahaah~"; //ASCII
WCHAR swzStr[] = "hahaha~" //Unicode
如果你采用了ASCII编码输出字符串,那么当你转到Unicode环境下的时候就需要全部转换为Unicode,这样很麻烦 ,我们可以用一个Windows下自带的宏来解决这个问题,可以理解为“万能编码”:
TCHAR stzStr[] = TEXT("hahaha~") //自动识别当前环境编码
第一个Win32小程序
例子:
#include "stdafx.h"
#include <windows.h>
void main()
{
TCHAR stzTitle[] = TEXT("1匹黑马");
TCHAR stzContent[] = TEXT("这是我的第一个Win32API程序!");
MessageBox(0,stzContent,stzTitle,MB_RETRYCANCEL);
return;
}
运行结果:
这里的按钮我们也可以改,修改MessageBox这个API的最后一个参数就行:
#include "stdafx.h"
#include <windows.h>
void main()
{
TCHAR stzTitle[] = TEXT("1匹黑马");
TCHAR stzContent[] = TEXT("这是我的第一个Win32API程序!");
MessageBox(0,stzContent,stzTitle,MB_YESNO); //修改这最后一个参数
return;
}
运行结果: