Createhread的函数声明:
HANDLE
WINAPI
CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
_beginthreadex的函数声明:
_ACRTIMP uintptr_t __cdecl _beginthreadex(
_In_opt_ void* _Security,
_In_ unsigned _StackSize,
_In_ _beginthreadex_proc_type _StartAddress,
_In_opt_ void* _ArgList,
_In_ unsigned _InitFlag,
_Out_opt_ unsigned* _ThrdAddr
);
转换宏:
typedef unsigned(__stdcall* PTHREAD_START) (void*);
#define chBEGINTHREADEX(psa, cbStackSize, pfnStartAddr, \
pvParam, dwCreateFlags, pdwThreadID)\
((HANDLE)_beginthreadex(\
(void *)(psa),\
(unsigned) (cbStackSize),\
(PTHREAD_START) (pfnStartAddr),\
(void *) (pvParam),\
(unsigned) (dwCreateFlags),\
(unsigned *) (pdwThreadID)))
引用:《Windows核心编程》。