我这个是有些是好的,有些是不对的,请教另一个问题:在客户端调用dcom时的常规语法是怎样的, 是不是要先初始化类,后用 dim rs rs=coinitalize(0) Set mOBJ = GetObject(, "MainApp.MyImage") counitialize
类的初始化是在类中实现后由类启动时自动初始化的 不需要在调用时初始化客户端上一般的定义方式为 Dim objX as MainApp.MyImage Set objX =CreateObject("MainApp.MyImage") 或 Dim objX as MainApp.MyImage如果是ASP中 Set objX =Server.CreateObject("MainApp.MyImage")
你说的 客户端上一般的定义方式为 Dim objX as MainApp.MyImage Set objX =CreateObject("MainApp.MyImage") 为什么不在CreateObject("MainApp.MyImage")后跟上ip地址呢,我是在广域网中,难道是类在本 地安装后自动注册后根据dcomcnfg中设的ip 地址会自动调用吗? 在线等
我的程序是在客户端安装后一有时会出现"远程服务器不存在或不可用的错误,"但我明明上去了,我想是什么原因是断了,你上面第二句是不是Dim objX as New MainApp.MyImage
Dim objX as New MainApp.MyImageCreateObject("MainApp.MyImage",IP) ===================================和Dim objX as New MainApp.MyImage ==================================有什么区别,前者可跟IP而后面的没法跟,能说一说吧,通常哪种格式更好一些呢 vb远程注册文件到底有什么用呢我说的是 xx.VBR是在system32/xx.vbr
不加ip,dcomcnfg配置的时候会在注册表中写入远程服务器的地址Dim objX as object Set objX =CreateObject("MainApp.MyImage")参考 http://community.csdn.net/Expert/topic/3170/3170015.xml?temp=.4534113
还有一个问题,比如在dcom服务器上docm并未启起来,在客户端用dim objX as new object能激活服务端的dcom吗我知道 Set objX =CreateObject("MainApp.MyImage")是可以的 所以 客户端在调用类时有一次CreateObject("MainApp.MyImage"),以后用dim objX as new object 方式,对不对请指教
远程服务器重新启动后没有登陆到域,
因为使用的组件是以admin的权限启动的,没有登陆就没有权限使用
是不是要先初始化类,后用
dim rs
rs=coinitalize(0)
Set mOBJ = GetObject(, "MainApp.MyImage")
counitialize
不需要在调用时初始化客户端上一般的定义方式为
Dim objX as MainApp.MyImage
Set objX =CreateObject("MainApp.MyImage")
或
Dim objX as MainApp.MyImage如果是ASP中
Set objX =Server.CreateObject("MainApp.MyImage")
客户端上一般的定义方式为
Dim objX as MainApp.MyImage
Set objX =CreateObject("MainApp.MyImage")
为什么不在CreateObject("MainApp.MyImage")后跟上ip地址呢,我是在广域网中,难道是类在本
地安装后自动注册后根据dcomcnfg中设的ip 地址会自动调用吗?
在线等
地安装后自动注册后根据dcomcnfg中设的ip 地址会自动调用吗?这个不会,呵呵,确实是需要指定IP的
因为我们在应用中对CreateObject进行了封装,用的多了,竟然没有去想
我现在是把IP写在注册表里,
出现该问题可能是因为一段时间没有请求后服务器端已经释放了你释放的资源
我们在做的时候,一般是采取连接后马上断开的方式,下个应用再重新连接
而不是保持一个连接。所以这样的问题,好象没有遇到。
Dim objX as New MainApp.MyImageCreateObject("MainApp.MyImage",IP)
===================================和Dim objX as New MainApp.MyImage
==================================有什么区别,前者可跟IP而后面的没法跟,能说一说吧,通常哪种格式更好一些呢
vb远程注册文件到底有什么用呢我说的是 xx.VBR是在system32/xx.vbr
这个前提是你注册本地上的COM,不是以DCOM的方式注册的.
如果一DCOM方式注册,则会在注册表中写下远程服务器的IP,这样,即使你使用CreateObject()不跟IP,他调用的也是远程的COM
createobject与new 的关键区别就是声明后系统对资源的控制权不一样。
createobject是由内存中重新创建一个实例而不是简单的资源计数器+1的概念。如果内存中存在一个这样的实例,编译器不会理会这个实例而是将对象重新创建一个。实际上是一个完全独立的新的资源实例。并且不受GC的资源回收控制,必须自己回收。
new声明的时候,编译器回自动寻找内存中的相应实例,找到了以后,将资源计数器+1,并不会在内存中重新声明内存地址空间,他是受GC限制的,当编译器运行完毕后,会自动将资源编译器里面的该对象的资源计数器-1,如果为计数器0的话就自动释放该对象。
---------------------------------------------------------------1. new 为对象的前期绑定,在建立对象时会通过scm进行对象管理,此方法在编译时慢,运行时快
2.createobject为对象的后期绑定,在建立对象是不通过scm进行对象管理,适应脚本应用程序,客户端或分布式程序,在编译时快,运行所占时间比较慢
3.所有对象都要set object=nothing
4.尽量以dll库建立对象,而不以.ocx建立对象,以减少所占资源
---------------------------------------------------------------
Set objX =CreateObject("MainApp.MyImage")参考
http://community.csdn.net/Expert/topic/3170/3170015.xml?temp=.4534113
Set objX =CreateObject("MainApp.MyImage")是可以的 所以 客户端在调用类时有一次CreateObject("MainApp.MyImage"),以后用dim objX as new object 方式,对不对请指教
注册到com+组件管理器中dcom服务器上docm,一般是指客户机两种方法都能激活,都是通过注册表操作的
个做为全局在程序中用objx.clsdcom()语法则会出现"远程服务器不存在画不可用"
这是不是断了,应怎第解决