本人编写了服务器端的组件发布在win2000 server上,并在客户端安装了该组件的应用程序代理,但是在远程调用服务器端组件时发生如下问题:
dim a as object
set a = createobject("dll.proc","server")'a的find方法
set a = a.find("777")在调用如上方法时,会发生91’,对象变量或with块变量未设置的错误。
奇怪的是有时有错,有时没错,这是怎么回事呀?
望大侠指点!

解决方案 »

  1.   

    dim a as object
    dim b
    set a = createobject("dll.proc","server")
    b= a.find("777")
      

  2.   

    object型变量如下是非法的。
    set a = a.find("777")
      

  3.   

    a.find("777")调用组件的方法然后返回值付给一个变量即可通常,当使用 Set 将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在 Set 语句中使用 New 关键字,那么实际上就会新建一个该对象的实例。
      

  4.   

    Dim o As dll.proc
    Private Sub Command1_Click()
    Set o = New dll.proc
    Debug.Print o.find("777")
    End Sub还可以这样绑定使用
      

  5.   

    示例说明
    Private Sub Command1_Click()
    Set a = Me
    Me.Caption = "改了"
    MsgBox a.Caption  '对象a同时改变
    End Sub
      

  6.   

    我定义的find方法的返回值就是返回a这个对象,如下
    在a这个类模块里,有这个方法public function find(str as string) as a
     .....
    end function可是在本地调用时,就成功。进行远程调用时就失败