CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

线程获得进程内对象

楼主BlackIceCN(星际浪子)2002-12-05 12:06:36 在 VC/MFC / 进程/线程/DLL 提问

 
  _com_ptr_t   <........>   pp   //全局  
  class   a::m(.........)  
  {  
            pp.CreateInstance(...)//实例化  
            pp->...//执行pp的方法,这些都没有问题  
        DWORD   dwThreadId;  
      m_hThread   =   CreateThread(....);//建立一个线程  
   
   
  }  
  a::Threadproc()//线程中执行此方法  
  {  
          pp->..//执行方法时候发现pp的所有方法都不能成功执行了  
  }  
  /*  
  请大侠们指教  
  不胜感激  
  */ 问题点数:100、回复次数:5Top

1 楼ingot(九儿)回复于 2002-12-05 15:18:56 得分 30

UINT   threadproc(LPVOID   pParam)  
  {  
          a*   pp   =   (a*)pParam;  
          pp->...//执行方法...  
          return   1;  
  }  
  不知道好使不Top

2 楼sxbyl(sxbyl)回复于 2002-12-05 15:44:42 得分 30

在线程里先CoInitialize,记住完事后CoUninitializeTop

3 楼BlackIceCN(星际浪子)回复于 2002-12-05 15:46:56 得分 0

to   ingot:  
    如果这么做的话  
  恐怕pp->...执行的就只能是class   a的方法而不是对象pp的方法了吧Top

4 楼BlackIceCN(星际浪子)回复于 2002-12-06 14:29:59 得分 0

我查了一下因为pp是一个Word::ApplicationPtr  
  但是word不存在对应的ThreadingModel,他只能在主STA中运行。  
  to     sxbyl(会用Windows的白菜):  
  我试了一下你的方法,还是第一次运行没有问题可是第二次执行就没有  
  反应了,而且没有打出任何错误信息Top

5 楼sxbyl(sxbyl)回复于 2002-12-06 14:35:48 得分 40

>还是第一次运行没有问题  
  “还是”?以前不是一次都不行吗?  
  如果第一次可以运行的话那就没什么问题了。开始你没说是什么对象。对于Word之类的COM对象,我记得可以通过参数决定是否新开Word应用程序的(也有可能记错了,你自己载再查查)。你可以试一次,在第一个Word完全退出后再开新的线程Top

相关问题

  • 线程获取进程内对象
  • vb中怎么获得一个句柄的进程或线程
  • 请问如何获得其他进程所创建的线程的 Handle?
  • 在线程控制函数里如何获得当前线程的句柄或者对象?
  • 能不能在子线程中实时获得主线程中的对象数据呀?
  • 怎样从另一进程获得该进程的主线程ID和主窗体句柄?
  • 线程,进程,不同点???
  • 关于进程与线程
  • 关于线程和进程
  • 进程,线程,时间片

关键词

  • 线程
  • 执行
  • word
  • pp
  • 对象
  • 方法
  • 没有问题

得分解答快速导航

  • 帖主:BlackIceCN
  • ingot
  • sxbyl
  • sxbyl

相关链接

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

广告也精彩

反馈

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