Windows编程--关于_beginthreadex的一个宏定义

本文介绍了一个宏定义,用于简化使用_beginthreadex函数创建线程的过程。该宏定义允许开发者通过一次调用轻松地创建线程,并设置线程的安全属性、堆栈大小、线程函数、参数、初始状态及线程ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


之所以写成宏定义。是因为觉得每一次对参值进行类型转换很麻烦。

 

 
  
#define BEGINTHREADEX(psa, cbStack, pfnStartAddr, \
pvParam, fdwCreate, pdwThreadId) \
((HANDLE)_beginthreadex( \
(
void *) (psa), \
(unsigned) (cbStack), \
(PTHREAD_START) (pfnStartAddr), \
(
void *) (pvParam), \
(unsigned) (fdwCreate), \
(unsigned
*) (pdwThreadId)))

 

 

 

unsignedlong _beginthreadex( void *security, unsigned stack_size, unsigned ( __stdcall*start_address )( void * ), void *arglist, unsigned initflag, unsigned*thrdaddr );

 

//第1个参数:安全属性,NULL为默认安全属性
//第2个参数:指定线程堆栈的大小。如果为0,则线程堆栈大小和创建它的线程的相同。一般用0
//第3个参数:指定线程函数的地址,也就是线程调用执行的函数地址(用函数名称即可,函数名称就表示地址)
//第4个参数:传递给线程的参数的指针,可以通过传入对象的指针,在线程函数中再转化为对应类的指针
//第5个参数:线程初始状态,0:立即运行CREATE_SUSPENDsuspended(挂起)
//第6个参数:用于记录线程ID的地址

FangSH

2011-01-05

转载于:https://www.cnblogs.com/fangshenghui/archive/2011/01/05/1926285.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值