win32 API中的宽字符
API就是系统函数。
几个重要的DLL:
<1>Kernel32.dll:最核心的功能模块,比如管理内存,进程和线程相关的函数等。
<2>User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等。
<3>GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和现实文本的函数。
在win32API中有很多没见过的定义。
比如LPCTSTR,但其实只是将我们平时用的改了一下名字它就是const char *。这样做是为了将不同语言中的对数据类型的定义统一起来(将它们重新起个名字)方便在各种语言中都能使用,也能跨平台或者在系统更新后使用。
汇编: byte BYTE PBYTE word WORD PWORD dword DWORD PDWORD C语言: char CHAR PCHAR unsigned char UCHAR PUCHAR short SHORT PSHORT unsigned short USHORT PUSHORT int INT PINT nsigned int UINT PUINT
win32API中使用的字符串有ASCII和UNICODE。所以windows的函数都是两份,分别对应前面两种形式。
比如:MessageBox它提供了两个函数MessageBoxA (ASCII) MessageBoxW(UNICODE)不过编程时最好使用UNICODE形式对应的因为windows中使用的字符串都是UNICODE形式的。
为了方便我们可以使用windows为我们提供的宏。这样可以根据当前项目的默认编码格式来转换。
使用MessageBox():
查询官方文档,其中有四个参数。
#include <windows.h>//自己尝试编写 int main() { TCHAR title[] = TEXT("标题"); TCHAR content[] = TEXT("win32"); MessageBox(0, content, title, MB_CANCELTRYCONTINUE); return 0; }
运行
其中TCHAR就是宏