0%

Win32基础

字符类型

1
2
3
CHAR szStr[] = "中国"; //ANSI
WCHAR swzStr[] = L"中国"; //Unicode
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()
进程的创建过程

  1. 映射EXE文件
  2. 创建内核对象EPROCESS
  3. 映射系统DLL(ntdll.dll)
  4. 创建线程内核对象ETHREAD
  5. 系统启动线程
    映射DLL(ntdll.LdrInitializeThunk)
    线程开始执行
求大佬赏个饭