edcujm
驱动牛犊
驱动牛犊
  • 注册日期2004-05-16
  • 最后登录2005-01-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:7429回复:8

AfxBeginThread怎么使用?

楼主#
更多 发布于:2005-01-12 11:43
感觉线程很有用,但是不知道怎么用,今天用afxbeginthread时,出现了如下问题:
C:\Documents and Settings\xiao\桌面\502AEval\502AEvalDlg.cpp(392) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
不知道怎么解决,还请大侠们指教一二,小弟不胜感激!
廖新根
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2005-01-12 11:47
用CREATETHREAD多好,别用MFC......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-12 13:32
你的参数错了!
首先加入一个全局的函数----线程,如myThread(LPVOID param)
{....
}
然后在你的程序中,启动该线程函数
..................
HWND hWnd=GetSafeHwnd();
AfxBeginThread(MyThread,hWnd,THREAD_PRIORITY_NORMAL);
...............
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-12 13:35
用CREATETHREAD多好,别用MFC......

应该是的线程函数没有定义好。照着下面做吧:
UINT MyControllingFunction( LPVOID pParam );

不过最好还是用SDK吧。
在交流中学习。。。
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-12 14:12
[quote]用CREATETHREAD多好,别用MFC......

应该是的线程函数没有定义好。照着下面做吧:
UINT MyControllingFunction( LPVOID pParam );

不过最好还是用SDK吧。 [/quote]
不,先把简单的搞一搞,在高原始的。 :D
s_6666_s_qd
驱动巨牛
驱动巨牛
  • 注册日期2004-08-14
  • 最后登录2006-07-11
  • 粉丝0
  • 关注0
  • 积分199分
  • 威望22点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-01-12 16:26
[quote]用CREATETHREAD多好,别用MFC......

应该是的线程函数没有定义好。照着下面做吧:
UINT MyControllingFunction( LPVOID pParam );

不过最好还是用SDK吧。 [/quote]用好一个就成
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-01-20 23:02
感觉线程很有用,但是不知道怎么用,今天用afxbeginthread时,出现了如下问题:
C:Documents and Settingsxiao桌面502AEval502AEvalDlg.cpp(392) : error C2665: 'AfxBeginThread' : none of the 2 overloads can convert parameter 1 from type 'unsigned int (void *)'
不知道怎么解决,还请大侠们指教一二,小弟不胜感激!
 

看看msdn中的帮助
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-01 10:25
参数类型不对
使用AfxBeginThread启动线程时,其第二个参数必须是LPVOID类型,即一个指向Void类型的指针,所以传递的参数也应该是相同的类型,而HWND实质为一个整数,所以要使用
这个参数应该这样使用:AfxBeginThread(ThreadProc,(LPVOID)(&hWnd));
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-09 13:22
线程函数一定要全局函数或静态函数才行
回答好的不要忘了给分哦。。。
游客

返回顶部