函数所在头文件
#include<windows.h>
CreateThread()函数原型
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全属性
DWORD dwStackSize, //线程初始栈大小
LPTHREAD_START_ROUTINE lpStartAddress, //线程函数入口,通常用线程函数名
LPVOID lpParameter, //给新线程函数传递参数
DWORD dwCreationFlags, //设置新线程附加标记,为0时,新线程立即运行
LPDWORD lpThreadld, //用来返回新线程的线程ID,如果不感兴趣,设为NULL
);
//Windows 系统提供的线程创建函数
HANDLE
HANDLE 是16位的无符号整数,是一种标识符,是一种指向指针的指针,用于标识对象。
Windows 是以虚拟内存为基础的操作系统,内存管理器经常移动内存中对象所在位置,对象的地址发生变化,而handle句柄就是用于记录对象内存地址变化,而它本身的存储地址不会发生变化;
handle(稳定地址) -> 记录对象内存地址(不稳定地址) -> 记录实际对象。
DWORD
DWORD 是双字节数据类型,现表示32位无符号整数,全称 Double Word ;
每个Word的长度为2个字节,DWORD双字则为4个字节,每个字节32位,DWORD则表示32位。
- 参数IpThreadAttributes 指定线程安全属性,当该参数位NULL时,线程获取默认安全描述符;
- 参数 dwStackSize 指定线程堆栈的初始大小,以字节为单位。如果该值为0,则新线程使用可执行文件的默认大小;
- 参数 lpStartAddress 指定由线程执行的自定义函数的指针;
- 参数 lpParameter 指定自定义函数需要的参数;
- 参数 dwCreationFlags 指定线程创建后所处的状态;
- 参数 lpThreadID 指定接收线程标识符的变量的指针,若该参数为NULL,则不需返回该标识符;
如果新线程创建成功,则返回值为新线程的句柄,若不成功,则返回NULL。