• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 使用跨套間的組件出現錯誤

使用跨套間的組件出現錯誤

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了双套间设计,农村房屋套间设计图,套间装修效果图,套间,套间平面图等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 使用跨套間的組件出現錯誤
描述:

小弟改了一個進程內服務器的組件,主線程為MTA,但是DL 組件的
ThreadingModel="" 或 沒有 , 因此呼叫 CoGetClassObject/
CoCreateIntance[Ex]COM會自動建立Main STA(STA0),CoGetClassObject
調用得到的類場對象(proxy)沒問題,但是再調用類場的CreateIntance卻發生了 REGDB_E_IIDNOTREG 錯誤. 或是直接調用CoCreateIntance 是 E_NOINTERFACE 錯誤 , 不知是哪個環節出了錯誤 .
http://support.microsoft.com/kb/150777/zh-tw 
上面這個網只有指出套間與對象使用關係 , 而我上面的情況就是
用戶端 伺服器  結果
------ ------  -----------------------------------------------------
MTA    無      proxy存取;伺服器載入到STA0;如果必要STA0由COM自動建立
不知哪為大大能否說明上面這個模式的正確做法 , 或是我漏了哪個步驟~~
代碼在此: http://myweb.fcu.edu.tw/~d9147897/InProc.rar
主要是輸入2數到組件中再作相加並回傳到 client. 有問題步驟是卡在第2歨 ,  
若把主線程中的CoInitializeEx(NULL,COINIT_MULTITHREADED);改成
CoInitialize(NULL); 是沒問題的 , 因為所產生的組件沒有 PROXY可以直接調用.
0. 先編譯 AddObj 產生DLL 再編譯 VCClient 執行.
1. 顯示 MTA 和 STA 線程 ID , 表示確實有2個套間存在 , MTA是由COM所建立
2. CAddObj 的確有被創建 , 但是呼叫 pFactory->CreateInstance 或
   CoCreateInstance 所得到的 proxy 指針卻為 null , 問題就是在這.
3. 輸入 2數 並傳回結果
在此感激不進!! 靠大家了~~


解决方案1:

可能需要向注册表中注册COM对象的PROXY/STUB, 不知是否注册了.
如果用的是ATL实现的COM对象
nmake -f XXXps.mak  // 生成PROXY/STUB相关DLL
regsvr32 XXXps.dll  // 将PROXY/STUB注册到注册表


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于线程套间问题。
  • 请解释一下com中套间的概念,非常感谢!
  • 关于COM中套间线程的一个问题。
  • 怎么不能跨套间创建对象呢?
  • 我总是把套间和线程的概念和成一个.帮我解释解释.
  • 关于套间的问题??
  • 关于套间线程的一段论述不是很明白
  • 使用跨套間的組件出現錯誤
  • 关于COM套间的认识问题

相关文章

  • 2017-06-05 2000,2003下不能不能实现进程隐藏的问题
  • 2017-06-05 多线程的程序是否也容易产生文件开关读写的错误
  • 2017-06-04 如何从ColeVariant对象中取出以零结尾的字户串
  • 2017-06-04 在VC中当鼠标移到浏览器相关链接时如何得到其链接地址?
  • 2017-06-04 请教用过TeeChart控件的高手们!
  • 2017-06-05 服务创建的EVNET对象,为什么在用户进程内打不可哪?
  • 2017-06-04 ocx在IE中的消息传递是怎么回事?
  • 2017-06-05 VBNET调用CppDllComServer的奇怪的问题
  • 2017-06-04 请问用ATL中BSTR数据类型和CString类型怎么相互转换?什么命令?
  • 2017-06-04 请问在CComEnum这个类怎么用?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 如何获取打开的IE浏览器的网页地址
    • 如何在ATL中输出参数!
    • 用VC写的asp组件相对于VB有什么优势吗?
    • 调用DLL中一个函数时,怎样取得其中的字符串的变量?急急!!
    • 菜鸟求助,vc60ocx
    • 高分求解COM,COM+,DCOM这些概念?和这方面的书。
    • ATL目前的版本是多少??
    • MFC封装OCX问题后,内存释放问题。
    • 如何传递自定义结构--MFCActiveXControlWizard建立的工程
    • 关于用ATL写ActiveX控件的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有