常见编码

Unicode:

包含全世界所有文字的编码表,只要是世界上存在的文字符号都有唯一的编码。
编码范围:0-0x10FFFF。
UNICODE编码虽然规定了编码,但是并没有规定如何存储编码。UTF-16和UTF-8才规定了如何存储。
一般默认存储为UTF-16。

UTF-16
UTF-16编码以16位无符号整数为单位,注意是16位为一个单位,不表示一个字符就只有16位。这个要看字符的unicode编码处于什么范围而定,有可能是2个字节,也可能是4个字节.现在机器上的unicode编码一般指的就是UTF-16。
UTF-16一个存储单元占两个字节。如:中:Ox 12 34国:0x 00 01 23 45

UTF-8
UTF-16以两个字节为一个存储单元,这就会导致不足两字节或者单数字节的数据在存储时会占用无用的空间。而UTF-8就是弥补这种缺陷,单字节就按单字节存储。不必再浪费空间。当然缺点也显而易见,数据不好分析。


文本文件的存储格式

C语言中的宽字符

C语言默认是ASCLL编码,如果要使用Unicode(默认UTF-16)。需要包含头文件locale并且还要使用控制台默认的编码。ASCLL编码的函数无法对Unicode编码的函数进行操作,如strlen()等一些对字符串操作的函数;

#include<locale.h>
int main(){
    setlocale(LC_ALL,:"");
    wchar_t a[]=L"中国"
    wprintf(L"%s\n",a);
    return 0;
}

Win32 API中的宽字符

Win32 API主要存放在C:\WINDOWS\system32下面的所有dll
几个重要的DLL:
<1> Kernel32.dll:最核心的功能模块,比如管理内存、进程和线程相关的函数等。
<2> User32.dll:是Windows用户界面相关应用程序接口,如创建窗口和发送消息等。
<3> GDI32.dll:全称是Graphical Device Interface(图形设备接口),包含用于画图和显示文本的函数。
win32的数据类型:
win32给汇编,c,c++中的数据类型起了新的别名。一般来说就是原数据类型大写表示,如char->CHAR。指针一般是数据类型前面加P,如:char* ->PCHAR。
win32中wchar_t用WCHAR表示,除此之外还有TCHAR(相当于一种宏)

CHAR A="中国";
WCHAR B=L"中国";//宽字符
TCHAR C=TEXT("中国");
//TCHAR相当于一种宏,会根据项目的需求选择对应的编码。
//对应的指针
PSTR PA="中国";
PWSTR PB=L"中国";//宽字符
PTSTR PC=TEXT("中国");
//PTSTR相当于一种宏,会根据项目的需求选择对应的编码。

MessageBox

MessageBox (句柄, 显示内容,标题,MB_OK)
句柄可以为NULL,表示当前窗体的句柄.
最后一个参数是显示在提示框中的按钮类型:
MB_ABORTRETRYIGNORE
MB_OKCANCEL
MB_RETRYCANCEL
MB_YESNO
MB_YESNOCANCEL
MB_OK
可选任一标志。

//ASCLL
CHAR SZTitle[]="标题";
CHAR SzContent[]="欢迎大家来的Win32 API世界!";
MessageBoxA(0,szContent,szTitle,MB_OK);
//UNICODE
WCHAR swzTitle[]=L"标题";
wCHAR swzContent[] =L"欢迎大家来的Win32 API世界!";
MessageBoxW(0,swzContent,swzTitle,MB_OK);
//通用
GHAR suzTit1e[-L"标题;
最后修改:2021 年 03 月 01 日
如果觉得我的文章对你有用,请随意赞赏