• 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 > 关于在COM组件里创建隐藏窗体的问题()

关于在COM组件里创建隐藏窗体的问题()

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

佚名通过本文主要向大家介绍了c#窗体组件,窗体,c#窗体应用程序教程,窗体控件,c#窗体应用程序实例等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于在COM组件里创建隐藏窗体的问题()
描述:

我在用VC(MFC dll)创建我的com组件
在这个COM组件里又建了一个隐藏的窗体却怎么也不能成功(以前我在delphi中可以成功)
下面是我创建的过程:
WNDCLASS wndclass;
wndclass.style   = NULL;
  wndclass.lpfnWndProc  = MyWndProc;//这个是我定义的窗体回调函数,其他参数都没有用
wndclass.cbClsExtra   = 0;
wndclass.cbWndExtra   = 0;
wndclass.hInstance   = NULL;
wndclass.hIcon   = NULL;
   wndclass.hCursor   = NULL;
  wndclass.hbrBackground = NULL;
   wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = "MyTestWindowinCOM";
if (!RegisterClass(&wndclass)) return 0;
hMyWnd = CreateWindow("MyTestWindowinCOM","", 0,0,0, 0,0,NULL, NULL, NULL,NULL) ; 
if ( hMyWnd == NULL )
ErrorExit("Create Window"); //get last error
                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                          创建失败后GetLassError竟然说“操作成功返回”!
那位大虾帮我分析一下,谢谢!
                                          


解决方案1:

woshialber (吴斐) ,你好:
想必你对vc调用com+组件有一定了解.我想请教你一个问题.它捆饶我已经很久了.
我在vc 的一个程序中要调用delphi写的com+(是dll文件),曾经试过几种方法,但都未能成功.调用之前,我已经在"控制面板"的"组件服务"中注册.我曾试过以下方法调用该com+.
方法一:classwizard"->"add class"->"from a type library"选择该dll文件,然后在程序中调用createdispatch函数创建com+对象可以成功,再调用接口函数时.若用单步执行F11进入系统函数m_ldispatch->invoke()时会出现实时调度,报告一些dllhost的问题.线程已经终止等问题.
若用cocreateinstance函数创建com+对象可以成功,但是再调用接口函数时弹出"access violation 0xc0000005"的错误.
方法二:用import "....dll" no_namespace导入dll文件,但编译不能通过,原因是接口继承于IAppServer类,它是delphi中的,vc不能识别.
您针对上面我所说的情况,能给我提供点意见吗?这个问题已经捆饶我很多天了,急需解决.拜托了!thanks!
我刚刚接触com+所以对它还不怎么了解,希望你多多指教.不胜感激!!!!!!!!!!!1

解决方案2:

怀疑线程Message处理与COM的之间冲突。可能是创建时机的问题。

解决方案3:

你把这段代码放到一个sdk的普通程序里面试试呢
放到
winmain里面看看,看能不能返回一个有效的句柄


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

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

  • 求助:如何把COM组件中的窗体显示在网页中
  • 关于在COM组件里创建隐藏窗体的问题()

相关文章

  • 2017-06-04 使用MSChart控件的一个问题
  • 2017-06-04 在应用程序中怎样显示ActiveX控件的属性页?
  • 2017-06-05 寻求帮助,关于vc转delphi!酬谢
  • 2017-06-04 导入控件问题
  • 2017-06-05 GetWindowLongPtr这个函数怎么会没有定义呢?Windows核心编程中的例子
  • 2017-06-05 请问工作线程和界面线程通讯的问题
  • 2017-06-05 高手们请帮助解决!
  • 2017-06-05 WindowsMediaPlayer编程
  • 2017-06-04 如何以代码形式将某UI组件加入到MFC应用程序
  • 2017-06-04 vc如何嵌入word,求详细步骤

文章分类

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

最近更新的内容

    • 最简单的调用进程内COMDLL的问题
    • 如何开发出包含多个自动化类但不通过类型库进行调用的AcriveX控件?
    • 关于VC中用DLL导出数组的问题
    • COM学习的一些疑问
    • ATL编写插件中如何将"\"替换成"\\"?
    • ATLCOM的Dll中如何使用GDI+
    • VC++读取图像RGB值
    • WebBrowser控件怎么给所显示的网页添加背景色呢
    • 如何在线程的全局函数中访问对话框中的共有变量
    • 如何继承Caxwindow让他的QueryControl每次调用自定义QueryInterface

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

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