字符类型
1 2 3
| CHAR szStr[] = "中国"; WCHAR swzStr[] = L"中国"; TCHAR stzSr[] = TEXT("中国");
|
字符串指针
1 2 3
| PSTR pszStr = "中国"; PWSTR pwszStr = L"中国"; PTSTR ptszStr = TEXT("中国");
|
窗口
MessageBox 可以根据当前环境选择使用哪个字符集
1 2 3 4
| #ifdef UNICODE #define MessageBox MessageBoxW #else #define MessageBox MessageBoxA
|
MessageBoxA
1 2 3
| CHAR szTitle[] = "标题"; CHAR szContent[] = "来到WIN32 世界!"; MessageBoxA(0, szContent, szTitle, MB_OK);
|
MessageBoxW
1 2 3
| WCHAR swzTitle[] = L"标题"; WCHAR swzContent[] = L"UUU win32世界!"; MessageBoxW(0, swzContent, swzTitle, MB_OK);
|
MessageBox
通常这样写
1 2 3 4
| TCHAR stzTitle[] = TEXT("标题"); TCHAR stzContent[] = TEXT("欢迎来到win32 U&A!\n\n\n"); MessageBox(0, stzContent, stzTitle, MB_OK);
|
进程
进程内存空间的地址划分
进程的创建
任何进程都是由别的进程创建的 CreateProcess()
进程的创建过程
- 映射EXE文件
- 创建内核对象EPROCESS
- 映射系统DLL(ntdll.dll)
- 创建线程内核对象ETHREAD
- 系统启动线程
映射DLL(ntdll.LdrInitializeThunk)
线程开始执行