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就是宏
这篇博客介绍了Windows API中的宽字符概念,以及如何在C语言中使用。重点讲解了Kernel32.dll、User32.dll和GDI32.dll等核心DLL的功能,并讨论了LPCTSTR等类型定义。内容涵盖了ASCII和UNICODE字符串在API中的使用,特别提到了如何通过MessageBoxA和MessageBoxW函数处理字符串。文章还演示了一个使用TCHAR的示例代码,展示了如何在不同编码格式下调用API。
2055

被折叠的 条评论
为什么被折叠?



