CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

createThread 的问题

楼主feiyufly()2005-06-14 11:34:21 在 VC/MFC / 进程/线程/DLL 提问

我用DWORD   WINAPI   workThread(LPVOID   lParam)定义了一个线程,可在createthread时提示无法将参数3从DWORD(LPVOID)转化为LPTHREAD_START_ROUTINE,郁闷,高不明白!!  
  我的createthread函数   为   hThread   =   CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);  
  请给于指点!!  
  问题点数:20、回复次数:6Top

1 楼keiy()回复于 2005-06-14 11:50:41 得分 10

HANDLE   CreateThread(  
      LPSECURITY_ATTRIBUTES   lpThreadAttributes,     //   pointer   to   security   attributes  
      DWORD   dwStackSize,                                                   //   initial   thread   stack   size  
      LPTHREAD_START_ROUTINE   lpStartAddress,           //   pointer   to   thread   function  
      LPVOID   lpParameter,                                                 //   argument   for   new   thread  
      DWORD   dwCreationFlags,                                           //   creation   flags  
      LPDWORD   lpThreadId                                                   //   pointer   to   receive   thread   ID  
  );  
  你的两个参数调错了  
  hThread   =   CreateThread(NULL,0,workThread,NULL,&dwThrdParam,&threadID);  
  Top

2 楼keiy()回复于 2005-06-14 11:57:24 得分 0

你的可以啊,是我看错了Top

3 楼younggle(洋溢)回复于 2005-06-14 12:00:27 得分 5

把  
  hThread   =   CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);  
  改为  
  hThread   =   CreateThread(NULL,0,  
                                              (LPTHREAD_START_ROUTINE)workThread,  
                                              &dwThrdParam,0,&threadID);  
   
  就可以了。  
  Top

4 楼keiy()回复于 2005-06-14 12:00:53 得分 0

不行的话可以强制转换试试  
   
  hThread   =   CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);  
  Top

5 楼orbit(走了走了)回复于 2005-06-14 12:03:15 得分 5

hThread   =   CreateThread(NULL,0,workThread,&dwThrdParam,0,&threadID);  
  没有问题,用LPTHREAD_START_ROUTINE强制转换  
  hThread   =   CreateThread(NULL,0,(LPTHREAD_START_ROUTINE   )workThread,&dwThrdParam,0,&threadID);  
   
  Top

6 楼coolsnow_(CoolSnow)回复于 2005-06-15 13:54:45 得分 0

强制转换可以!  
  hThread   =   CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)workThread,&dwThrdParam,0,&threadID);  
  Top

相关问题

  • createthread
  • CreateThread的问题
  • CreateThread的问题
  • 如何使用CreateThread
  • _beginthread()与CreateThread()的区别
  • 用CreateThread(...)创建线程...?
  • 怎样正确调用CreateThread
  • 请教高手,createThread问题?
  • 关于CreateThread的问题
  • 关于CreateThread的问题

关键词

  • 转换
  • start
  • null
  • dwthrdparam
  • createthread
  • workthread
  • lpthread
  • threadid
  • hthread
  • routine

得分解答快速导航

  • 帖主:feiyufly
  • keiy
  • younggle
  • orbit

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo