• 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

佚名通过本文主要向大家介绍了大家来讨论,大家来讨论明教,口语交际大家来讨论,大家一起来讨论,大家一起讨论的成语等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 大家来讨论一下如何动态地使用com组件?
描述:

dll可以调用LoadLibrary函数加载动态库,然后调用GetProcAddress来获得函数的指针,这样只要提供一个动态库和函数的名称,函数的参数,就可以使用动态库的方法了。
com组件是否也能达到这样的功能?


解决方案1:

up

解决方案2:

我在VB中应用COM, 直接CreateObject 用的不亦乐乎...

解决方案3:

com连动态库的名称和存放地点都不需要知道
不是比dll更好?

解决方案4:

如果搂主提出的问题都明白了,那么COM组件真的能发挥优势了

解决方案5:

我知道用IDISPATCH可以根据注册表中的内容调用.DLL的方法和属性,但不知道如果我做了一个可视化组件,如何可以随意在VIEW上加?
控件容器如何做啊?

解决方案6:

http://community.csdn.net/Expert/topic/2977/2977524.xml?temp=.8665583

解决方案7:

四、不用CoCreateInstance or CoGetClassObject,直接从dll中得到DllGetClassObject,接着生成类对象及类实例(本方法适合于你想用某个组件,却不想在注册表中注册该组件)
演示代码:
/*前期准备工作如二方法所述,事实上只要得到CLSID和IID的定义及接口的定义就行*/
typedef HRESULT (__stdcall * pfnGCO) (REFCLSID, REFIID, void**);
pfnGCO fnGCO = NULL;
HINSTANCE hdllInst = LoadLibrary("D:\\Temp\\vc\\simpCOM\\Debug\\simpCOM.dll");
fnGCO = (pfnGCO)GetProcAddress(hdllInst, "DllGetClassObject");
if (fnGCO != 0)
{
IClassFactory* pcf = NULL;
HRESULT hr=(fnGCO)(CLSID_Foo, IID_IClassFactory, (void**)&pcf);
if (SUCCEEDED(hr) && (pcf != NULL))
{
IFoo* pFoo = NULL;
hr = pcf->CreateInstance(NULL, IID_IFoo, (void**)&pFoo);
if (SUCCEEDED(hr)  && (pFoo != NULL))
{
pFoo->SayHello();
pFoo->Release();
}
pcf->Release();
}
}
FreeLibrary(hdllInst);

解决方案8:

呵呵,com组件不需要知道名字,用id就行了,当然不dll好多了


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

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

  • 接上一个问题,欢迎大家来讨论下!
  • 请大家来讨论一下:线程之间的通信(分不够再加!!!)
  • 大家来讨论一下线程类的问题
  • 关于可执行程序的自我删除,大家来讨论吧!!!
  • 大家来讨论讨论一般日志怎么写啊?
  • 大家来讨论一下,关于子线程和主线程的终止运行的先后顺序!
  • 欢迎大家来讨论“COM+松耦合事件”方面的问题,我会加分的。
  • 谁能解释清楚COM的类厂是个什么概念,用在什么地方,怎么用?欢迎大家来讨论!!!!
  • 关于嵌入的问题欢迎大家来讨论,来者有分
  • 大家来讨论一下如何动态地使用com组件?

相关文章

  • 2017-06-05 在只允许运行一个实例的程序中,当第二个实例启动时如何控制第一个实例显示窗体?
  • 2017-06-04 请问对象库olb文件是如何生成的?
  • 2017-06-05 怎么调试服务程序?
  • 2017-06-04 可以说接口就是指针吗?
  • 2017-06-04 VS2010环境的OpenMP的并行循环的输出问题
  • 2017-06-05 关于控件事件的一个疑问!
  • 2017-06-04 vc60中药怎码洋才能使用com库!!!
  • 2017-06-04 关于WTL里的CHttpFile(CInternetFile)的QueryInfo出错,有了解的可以近来看看
  • 2017-06-05 急,如何关闭指定线程?(不好意思,分用了)
  • 2017-06-04 excel导出数据到程序中出现的问题,请赐教,分多多~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

文章分类

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

最近更新的内容

    • 如何在ocx控件的Ondraw函数内得到控件窗口的句柄。
    • 有关ATL控件大小动态变化的问题!
    • ATL工程如何得到工具箱中控件的指针
    • 关于《COM原理与应用》第三章例题的一个疑问
    • ?如何在Activex控件中实现浮动的窗口,工具栏,使浮动工具栏可以停靠在调用该控件框架窗口(hhool)急!!
    • 如何从窗口句柄找到窗口?
    • 修改定义好的ATL工程中的接口
    • 在MFCSDI程序中使用IWebBrowser2接口,怎么让它能执行页面中的onkeydown事件?
    • 有谁了解AsynchronousPluggableProtocols,进来看一下
    • 能不能导出一个类的公有成员变量?

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

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