| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 394 人关注过本帖
标题:CreateObject 和New的区别是什么
收藏  订阅  推荐  打印 
happynight
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:318
积分:3727
注册:2008-4-26
CreateObject 和New的区别是什么

在网上搜索了下,看了还是不是很明白
--------------------------------------------------------------------
1 . createobject与new   本质的不同。   
  createobject与new   的关键区别就是声明后系统对资源的控制权不一样。   
  createobject是由内存中重新创建一个实例而不是简单的资源计数器+1的概念。如果内存中存在一个这样的实例,编译器不会理会这个实例而是将对象重新创建一个。实际上是一个完全独立的新的资源实例。并且不受GC的资源回收控制,必须自己回收。   

  new声明的时候,编译器回自动寻找内存中的相应实例,找到了以后,将资源计数器+1,并不会在内存中重新声明内存地址空间,他是受GC限制的,当编译器运行完毕后,会自动将资源编译器里面的该对象的资源计数器-1,如果为计数器0的话就自动释放该对象。   

不明白New的时候为什么是先搜索已经存在的实例,在我的理解里,New的时候应该不存在实例的,有谁能给个范例代码吗或者解释下

2.

New的时候,调用的是那个带下划线的接口   
  CreateObject的时候,返回IDispatch接口   
  带下划线的接口是VB一种特殊方法,自VB4,Office97以后就这么   
  用了,以前的好象只能用IDispatch接口.

带下划线的接口是什么接口

3.

还有就是要说的是那个前期绑定和后期   
  New是前   
  CreateObject是后期   
  因为New的时候必须加入类型库   
  有类型检查   
  而后者没有,所有的调用都可能成功,自已检查   

------------------------------------
不知道各位还有什么补充的吗

[ 本帖最后由 happynight 于 2008-8-22 08:32 编辑 ]
搜索更多相关主题的帖子: CreateObject  
2008-8-22 08:30
mnb1478
Rank: 1
等级:新手上路
帖子:26
积分:362
注册:2008-7-1

原来如此呀





[url=http://www.511h.com/0/448/]坏蛋是怎样炼成的2[/url]
2008-8-22 08:46
三断笛
Rank: 12Rank: 12Rank: 12
等级:版主
威望:9
帖子:928
积分:10263
注册:2007-5-24

用new比createobject快

滚滚红尘中的白痴..........
2008-8-22 14:27
happynight
Rank: 3Rank: 3
等级:中级会员
威望:2
帖子:318
积分:3727
注册:2008-4-26

三断笛 在 2008-8-22 14:27 的发言:

用new比createobject快
多谢 能告之两者的区别吗
2008-8-22 16:11
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

如果我没记错的话,createobject是用来进行后期绑定的.
createobject可以运行时进行对象的创建.

105本高清PDF电子书 :http://www.cnblogs.com/ioriliao/archive/2008/10/20/1315343.html
VB爱好者1号群:31556786
2008-8-24 15:14
朗朗
Rank: 3Rank: 3
等级:中级会员
帖子:227
积分:2484
注册:2007-10-2

问个直接的

那我们应该在什么时候用NEW或CREATEOBJECT呢?
2008-8-24 16:26
ioriliao
Rank: 12Rank: 12Rank: 12
来自:广东
等级:贵宾
威望:29
帖子:2122
积分:23963
注册:2006-11-30

我们创建对象时一般先引用才可以用new创建实例,
如果没用引用呢...乍办...用CREATEOBJECT.

105本高清PDF电子书 :http://www.cnblogs.com/ioriliao/archive/2008/10/20/1315343.html
VB爱好者1号群:31556786
2008-8-24 16:51
multiple1902
Rank: 12Rank: 12Rank: 12
等级:版主
威望:40
帖子:4479
积分:45682
注册:2007-2-9

同楼上。

CreateObject是要从工程外找到资源的,或者说是要读注册表的,必然比工程内引用好的要慢。

“高考”这个词在耳边不断萦绕,心中的激动不言而喻。写下一句话,一起努力。Let's struggle together.
2008-8-26 09:42
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.054164 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved