zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    bbs树形打印(一)
    ORM
    kafka的分区
    Content-type"是"application/json的作用
    idea增强for循环
    rabbitmq的发布订阅
    搭建mqtt服务器apollo
    kafka生产者集群和分区,消费者轮询接收
    http实时推送技术
    Kafka:Configured broker.id 2 doesn't match stored broker.id 0 in meta.properties.
  • 原文地址:https://www.cnblogs.com/fangshenghui/p/1926285.html
Copyright © 2011-2022 走看看