CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

线程定义为全局函数,如何调用其他的函数?在线等,急

楼主cherish10()2005-08-02 13:45:49 在 VC/MFC / 进程/线程/DLL 提问

long   CTransparentWnd::screencopy(WPARAM   wParam,LPARAM   lParam)  
  {  
          AfxMessage("成功调用");  
          return   0;  
  }  
   
  UINT   ComputerThreadProc(LPVOID   param)  
  {  
  //这部分因该怎么写?  
  return   0;  
  }  
   
  void   CTransparentWnd::OnChar(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)  
  {  
  //   TODO:   在此添加消息处理程序代码和/或调用默认值  
  if   (nChar=='a')  
  {  
  pThread=AfxBeginThread       (ComputerThreadProc,THREAD_PRIORITY_NORMAL,0,0,NULL);  
  }  
   
  CWnd::OnChar(nChar,   nRepCnt,   nFlags);  
  } 问题点数:100、回复次数:8Top

1 楼legendhui(秋天的叶子)回复于 2005-08-02 13:52:06 得分 40

UINT   ComputerThreadProc(LPVOID   param)  
  {  
  //这部分因该怎么写?  
                    CTransparentWnd*   transwnd   =   new   CTransparentWnd();  
                    transwnd->screencopy(WPARAM   wParam,LPARAM   lParam);  
                    delete   transwnd;  
  return   0;  
  }  
  Top

2 楼rwdx(忆)回复于 2005-08-02 13:54:15 得分 10

LPVOID   param  
   
  好好利用这个参数,用它来传递指针Top

3 楼zhangshengyu(Interested in:filesystem, Storage, Filter Drivers )回复于 2005-08-02 14:04:02 得分 10

pThread=AfxBeginThread       (ComputerThreadProc,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);  
  把当前指针传进去  
  Top

4 楼laiyiling(陌生人[MVP])回复于 2005-08-02 14:19:03 得分 10

AfxBeginThread(ComputerThreadProc,m_hWnd,THREAD_PRIORITY_NORMAL,0,0);  
  //m_hWnd是从CTransparentWnd得到的  
   
  参考  
  http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=435Top

5 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-02 14:23:05 得分 10

将类实例指针作为参数传递给线程,但此类必须是线程安全的。Top

6 楼RedCrow(jinbo)回复于 2005-08-02 14:30:13 得分 10

long   CTransparentWnd::screencopy(WPARAM   wParam,LPARAM   lParam)  
  {  
          AfxMessage("成功调用");  
          return   0;  
  }  
   
  UINT   ComputerThreadProc(LPVOID   param)  
  {  
  CTransparentWnd*   transwnd   =   (   CTransparentWnd*   )param;  
  return   0;  
  }  
   
  void   CTransparentWnd::OnChar(UINT   nChar,   UINT   nRepCnt,   UINT   nFlags)  
  {  
  //   TODO:   在此添加消息处理程序代码和/或调用默认值  
  if   (nChar=='a')  
  {  
  pThread=AfxBeginThread       (ComputerThreadProc,this,THREAD_PRIORITY_NORMAL,0,0,NULL);  
  }  
   
  CWnd::OnChar(nChar,   nRepCnt,   nFlags);  
  }  
  Top

7 楼AntonlioX(做人要厚道)回复于 2005-08-02 14:34:53 得分 10

将CTransparentWnd对象的指针作为参数传递给线程Top

8 楼qrMs(空 气 1.1)回复于 2005-08-03 10:31:48 得分 0

两种方式:  
  1.在创建时使用结构体指针或对象指针将参数传递给线程函数  
  2.定义其它的全局对象指针Top

相关问题

  • 多线程调用同一全局函数会不会锁死
  • 实现多线程时定义的全局函数是不是只能调用全局函数?
  • 线程问题:AfxBeginThread中调用的线程函数是否一定要为全局函数,能否调用所在类的其他成员函数?
  • 辅助线程可以调用主线程的全局变量和函数吗?怎么用
  • 请教线程中的全局函数调用Dialog类中的控件的问题
  • 在三个线程中同时调用一全局函数,会发生什么情况?
  • 关于创建线程调用全局函数的问题,遇到内存异常增加!
  • 函数(全局函数?)调用出现的一个问题
  • 使用callbyname函数样调用全局模块中的函数?
  • 全局函数: 调用全局函数怎么也说未定义?

关键词

  • 函数
  • 线程
  • 指针
  • null
  • ctransparentwnd
  • computerthreadproc
  • 调用
  • transwnd
  • screencopy
  • onchar

得分解答快速导航

  • 帖主:cherish10
  • legendhui
  • rwdx
  • zhangshengyu
  • laiyiling
  • DentistryDoctor
  • RedCrow
  • AntonlioX

相关链接

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

广告也精彩

反馈

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