Win32API中的宽字符
4.1了解什么是Win32API
Win32API就是windows操作系统提供给我们的函数(应用程序接口),其主要存放在C:\Windows\System32
(存储的DLL是64位)、C:\Windows\SysWOW64(存储的DLL是32位)下面的所有DLL文件(几千个)
重要的DLL文件:
-
Kernel32.dll:最核心的功能,例如内存管理、进程线程相关的函数等;
-
User32.dll:Windows用户界面相关的应用程序接口,例如创建窗口、发送信息等;
-
GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数。
在C语言中我们想要使用WinAPI的话直接在代码中包含Windows这个头文件即可。
比如我们想要弹出一个提示窗口,Win32API文档中弹窗API的格式如下:
int MessageBox(
HWND hWnd, // handle to owner window
LPCTSTR lpText, // text in message box
LPCTSTR lpCaption, // message box title
UINT uType // message box style
);
这个代码可能看起来非常可怕,好像我们都没有接触过,但实际上其不是什么新的类型,所谓的
新的类型无非就是给原有的类型重新起了一个名字,这样做是位了将所有类型统一化,便于读写,
如果涉及到跨平台的话将原来的类型修改一个就好了,无需对代码进行重写
常用的数据类型在Win32中都重新起了名字:
汇编:
byte BYTE PBYTE
word WORD PWORD
dword DWORD PWORD
C语言:
char CHAR PCHAR
unsigned char UCHAR PUCHAR
short SHORT PSHORT
unsigned short USHORT PUSHORT
int INT PINT
unsigned int UINT PUINT
C++语言:
bool BOOL
4.2在Win32中使用字符串
字符类型:
CHAR strBuff[] = "中国";//char
WCHAR strBuff[] = L"中国";//wchar_t
TCHAR strBuff[] = TEXT("中国");//TCHAR根据当前项目的编码自动选择char还是wchar_t,在win32中推荐使用这种方式。
字符串指针:
PSTR strPoint = "中国"; //char*
PWSTR strPoint=L"中国";//wchar_t*
PTSTRT strPoint=TEXT("中国");//PTSTR根据当前项目的编码自动选择char* 还是wchar_t* 在Win32中推荐使用这种方式。
```/2069956-20220517215848808-155326404.png)