相信积累的力量

windows程序设计学习笔记

第2章 Unicode

char c = 'A';
char a[]= "Hello!";

c语言中的宽字符类型wchar_t,在WCHAR.H中定义
typedef unsigned short wchar_t;
wchar_t c = 'A';占两个字节0x0041,小端序:0x41, 0x00
wchar_t *p = L"Hello!";L表示用宽字符存储,14个字节
wchar_t a[] = L"Hello!";

宽字符库函数

char *pc = "Hello!";
iLength = strlen(pc);//6

宽字符版本的strlen为wcslen

size_t __cdecl strlen(const char*);
size_t __cdecl wcslen(const wchar_t*);

根据_UNICODE宏是否被定义

#define _tcslen wcslen //定义了_UNICODE
#define _tcslen strlen // 未定义

typedef wchar_t TCHAR; //定义了_UNICODE
typedef char TCHAR;    // 未定义

#define __T(x) L##x    //定义了_UNICODE
#define __T(x) x       // 未定义

#define _T(x) __T(x)
#define _TEXT(x) __T(x)

windows头文件类型

ctype.h包含wchar_t定义

typedef char CHAR;
typedef wchar_t WCHAR;
#define __TEXT(quote) L##quote  //定义了UNICODE
#define __TEXT(quote) quote     // 未定义 UNICODE

#define TEXT(quote) __TEXT(quote)

windows函数调用

#ifdef UNICODE
#define MessageBox MessageBoxW
#else
#define MessageBox MessageBoxA
#endif

第3章 窗口与消息

posted @ 2023-05-17 15:40  ThreeF  阅读(11)  评论(0编辑  收藏  举报

相信积累的力量