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



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

    #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

  • 相关阅读:
    Markdown文字添加颜色
    深度学习基础——感知机
    Markdown插入表格语法
    卷积神经网络CNN学习笔记
    python 安装离线库
    无法定位程序输入点到xxx.dll
    XMind配置防火墙
    简书 markdown 代码高亮标记
    clion ctrl+鼠标左键不能调到函数实现
    D
  • 原文地址:https://www.cnblogs.com/fangshenghui/p/1926285.html
Copyright © 2020-2023  润新知