游戏开发论坛

 找回密码
 立即注册
搜索
楼主: death

com 到底有什么优势?

[复制链接]

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2006-2-10 15:18:00 | 显示全部楼层

Re:com 到底有什么优势?

com在C++中,可以自动生成.h文件,所以也算不需要头文件的范畴。

DirectX SDK是基于COM提供给C++程序员单独的接口,为了方便使用,实际上,可以完全不用DirectX SDK也能工作的。

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2006-2-10 15:27:00 | 显示全部楼层

Re:com 到底有什么优势?

COM是一个包含了语言无关性、实现了引用计数、使用了类工厂等等的一个综合体。

它能够解决语言无关性,它属于一个接口概念范畴,不能解决平台相关性,也就是说,不能提供跨平台支持。
.NET比COM更好得解决了语言无关性,而且可以完成跨平台支持,对于高级应用来说更加方便,所以取代COM是必然的。

6

主题

110

帖子

110

积分

注册会员

Rank: 2

积分
110
发表于 2006-2-12 01:53:00 | 显示全部楼层

Re:com 到底有什么优势?

COM是综合了多种技术。对COM理解了就会体会到COM有多么厉害,要不然DX就不会写成COM了,你当billgates是傻子,不好他会用COM技术实现DX吗。

10

主题

88

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2006-2-12 02:32:00 | 显示全部楼层

Re:com 到底有什么优势?

受教了-v-

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2006-2-12 09:00:00 | 显示全部楼层

Re:com 到底有什么优势?

有人说“COM”没落了,那么就太不了解Microsoft了。在与“OpenDoc”的竞争中,“COM”是个彻底的胜利者,在与“Java”的竞争中,“COM”成功的进化了,在这个过程中Microsoft体现了强大的吸收能力、以及无法想象的韧劲。.NET只不过是COM的“别名”而已。对于一个经验丰富的C++程序员而言,.NET就是COM的进化,而Microsoft内部.NET就是“COM  3.0”(OLE2就是COM  2.0),而“CLR”就是一个不择不扣的COM对象。曾经有人问我,既然牛顿时代就奠定了基础(想想著名的牛顿-莱布尼茨公式),几百年后的今天,数学还研究“微积分”吗?回答当然是依然在研究!“微积分”早期是针对函数的,现代“微积分”是针对“流形(Manifold)、纤维丛(Fiber  Bundle)”的,概念深奥了,可是基本思想不变,只是“微积分”的思想得到合理的延拓与进化,你了解Microsoft吗?Microsoft  Research有一批超一流的数学家在为Microsoft工作,其中一些是斐尔兹奖的得主,Microsoft正在实现如同“微积分”进化到“微分流形”一样将“COM”进化到“.NET”。从科学概念角度上分析COM与Java,可能COM更全面、精确,从实现的成熟度上Java可能更成熟,可是你看到,Microsoft正在不紧不慢的追赶。

                                                                 ——《十年MFC经历认识的Microsoft技术》

14

主题

131

帖子

136

积分

注册会员

Rank: 2

积分
136
发表于 2006-2-14 16:55:00 | 显示全部楼层

Re:com 到底有什么优势?

很多人说java和.net将取代com,但这些犯了一个终极错误,就是效率!com是生成原生的执行代码,而java和.net是解释型代码,所以至少在游戏上面java和.net根本不值一提。

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2006-3-6 12:25:00 | 显示全部楼层

Re:com 到底有什么优势?

首先,.NET没有解释执行的方式,它只有虚拟机执行和机器代码执行两种方式。
其次,.NET有跟COM一样的机器代码执行,同样,JAVA也有机器代码执行的方式。

效率并不是COM同.NET的区别,我个人认为还是中间语言和虚拟机,COM是借口式跨语言,.NET是中间语言式的跨语言。

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2006-3-6 12:29:00 | 显示全部楼层

Re:com 到底有什么优势?

Java在做游戏上不行,还是因为无法发挥某个平台的最大优势,因为Java的设计并不适合处理独特平台。在通用运算上,Java同C++一样可以运行在机器代码上,效率差别并不大。

.NET同样如此,但是.NET的C++/CLI设计非常得有趣,C++可以做驱动层,可以跟系统挂接紧密,由C++提供函数后,CLI部分处理逻辑,兼顾了效率和应用方便。

LUA支持C++/CLI结构,就是在游戏中应用.NET框架的一种体现。

31

主题

630

帖子

635

积分

高级会员

Rank: 4

积分
635
发表于 2006-3-6 12:39:00 | 显示全部楼层

Re:com 到底有什么优势?

至少在程序稳定之后才有封装的必要。
良好封装的控件比较容易被盗用。
com控件可以很方便的被.Net/CLI访问。

1

主题

40

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2006-3-6 12:40:00 | 显示全部楼层

Re:com 到底有什么优势?

对于COM应用,不扩展C++的方法就是利用C++的宏特性和模板特性来处理,但是它们的能力并非无限扩充,无论在编码还是使用的成本都过高,所以微软提出C++/CLI标准来扩充C++编译器特性。

.NET说是COM发展而来的,我觉得也是可以理解的,但是它们应该是不同的产品。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 19:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表