• 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
问题: 这样的回答简直很扯淡!要么你就说明白点,别说些不计大脑的话了,拜托!
描述:

有个问题:“一直不明白为什么非得用类厂建立com对象”
很多人都这么回答:“类厂是创建组件的组件,必须先创建类厂,再用其创建自己的组件。”
拜托大哥了,求你别这么说了好吧?
这正如我问:“为什么吃西瓜必须用剪刀割开它而不直接打破或用水果刀剖开它”,
你能这么回答吗:“吃西瓜必须用剪刀割开西瓜,然后才能吃到西瓜瓤”?
拜托了,给点专业精神好不好?
其实com规范没规定一定要用类厂去创建组建,类厂就不是,
关键是你得把使用类厂创建组建的好处说透彻啊,
帮人帮到底嘛,您说是不是这个理儿?
火气有点盛,大家见谅!


解决方案1:


如果new,不管人家是否给你开放了一个类的实现代码。但它的头文件就必须是完整的,但private的内容也必须暴露给你。而一旦暴露private下面的内容,就暴露了实现意图。这第一个方面违反了C++设计的准则,也不符合微软要彻底封闭源码的商业精神。但如果不暴露给你,你用该类的dll,在你的EXE 中new一下,就会出错。
所以,微软需要类工厂,如果要把OO进行到底,也需要这样一个东西。它真正屏蔽了细节实现。

解决方案2:

我认为对不懂的事情作判断最有创造力,
就好像不懂f1的上海象个小赤佬一样闯进f1圈子,搞的fia狂宰之余还赞叹咱中国人民族创造力一样。
我在想,系统凭一个IUnknown指针,完全可以知道这个指向的对象是否支持某个接口,是否支持
自动化,但是凭什么知道怎样new出这个包容接口的类实例呢,总是要开发者提供一个标准的方法放在
dll里面,并且符合系统的要求,能够让它调用,返回一个指针吧,不然就是根据CLSID
直接在dll里面瞎摸一通,用某种hash表建立CLSID与类型的关系,然后慢慢查找,最后,系统
人性化的自己把对象new了出来,返回,但这样也有个问题,如果是系统来创建,那岂不是实现了
系统不必要的干预用户进程了?这样的话,稍微有点软公司就是霸道到极点。
我感觉,com实际上是一个用户用另一个用户的想法的一个标准,系统只不过通过一个用户建立
的标准来为另一个用户服务而已,好像去饭店,实际上是跟厨师打交道,但是没人会跑到厨房去点菜
,即使没有菜单,也会有个小斯站在你面前记录,或者是台点菜机器人,这个斯或者
玩意儿应该是全世界都有的,是标准接口,但很少有人关心这些东西,它就是class factory,
因此,没有侍者也有其他替代的标准环节,没有class factory,或者有个什么class maker什么的,
没必要关心这个,我们关心的,是写出高效的com组件,更好的为现代化服务,解决温饱,早日打倒列强。倒数第二句当我没说。

解决方案3:

我想:
本来com规范没有说一定要实现IClassFactory。
不过我们一般都会使用CoCreateInstance 。而microsoft在这个函数的实现是调用了IClassFactory的。实际上你在默认赞成使用IClassFactory.
为了我们的com能够兼容weiruan的那套,so need 实现这个工厂接口。
至于microsoft为什么要加入这个接口,可能是从设计模式的角度考虑吧。
我的想法,非真理。纯属想法,共探讨,呵呵。。

解决方案4:

并不是“非得用类厂建立com对象”,
类厂本身就是一个com对象,
但它一般不是由类厂创建的。

解决方案5:

老兄火气可真大呀。
创建COM的方式两种:类工厂和IUnknown.


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

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

  • 这样的回答简直很扯淡!要么你就说明白点,别说些不计大脑的话了,拜托!

相关文章

  • 2017-06-05 请教一个动态库和静态库的问题,多多给分阿,请大虾指导阿
  • 2017-06-05 救急啊,BHO问题,附完整实例代码,请花5分钟帮忙看下
  • 2017-06-04 使用MFC开发ActiveX控件,如何在控件内容使用消息呀!
  • 2017-06-04 高分求web页面的截屏activeX控件,类似于QQ邮箱里面的
  • 2017-06-04 利用ATL做WORD插件实现超链接的问题
  • 2017-06-05 Window2000进程异常终止
  • 2017-06-05 IDispatch接口中的GetTypeInfo函数如何被调用
  • 2017-06-04 COM指针问题
  • 2017-06-05 变速齿轮简单问题大送分
  • 2017-06-05 100分求教vc++word转PDF

文章分类

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

最近更新的内容

    • ---如何对一个二进制文件进行比特级读写操作---
    • 怎么我的DLL共享数据段没有成功?
    • Activex控件中嵌入Flash控件,IE下,activex收不到FSCommand事件
    • ATL如何实现向IE右键菜单中添加一项
    • 求二进制文件比较算法
    • 简单问题一个标准函数SafeArrayGetElement,不知道什么意思
    • 有没有能解答一下这个神奇的问题
    • 关于服务进程的问题--服务进程弹出的错消息怎么获取??
    • 在DLL中的共享程序段内定义的变量在其他的CPP文件中如何使用,extern不行
    • AquestionaboutDcomtech

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

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