如何在dll中定义一个不需要新建对象的函数??我知道通常使用时都是新建一个对象 
Class1 c = new Class1
c.doing()我想知道有没有一种方法,不需要新建直接使用的方法,如Class1.doing()
请指教,谢谢`

解决方案 »

  1.   

    标准DLL可以直接doing连class1也没有了
      

  2.   

    doing方法是类的方法的话,不创建一个对象,如何能调用它的方法呢??期待2楼的解答
      

  3.   

    像就是写成API这种调用,不过 VB是写不出来的好像
      

  4.   

    貌似ActiveX DLL无办法做到这样,你必须创建对象.不过如果你有兴趣,可以看看我折腾的这个东东:http://www.skycn.com/soft/20814.html'示例调用代码:
    Option ExplicitPrivate Declare Function TestMsgboxVB Lib "TestDLL.dll" (ByVal lpStr As String)
    Private Declare Function TestMsgbox Lib "TestDLL.dll" ()
    Private Declare Function TestAddNum Lib "TestDLL.dll" ( _
         ByVal lNum1 As Long, _
         ByVal lNum2 As Long) As Long
    Private Declare Function TestReturnByte Lib "TestDLL.dll" ( _
         ByVal Strlen As Long, _
         ByVal lpStrBuffer As Long) As Long     '传入缓冲区指针
    Private Declare Function TestReturnStr Lib "TestDLL.dll" ( _
         ByVal Strlen As Long, _
         ByRef lpStrBuffer As String) As Long       '要返回字符串内容而不使用StrPtr传指针,那就需要以ByRef声明,这与一般API的使用不同.原因还没研究透:)
         
    Private Sub Command1_Click()
        '消息框测试(VB)
        Call TestMsgboxVB("测试字符串参数传入")
    End SubPrivate Sub Command2_Click()
        '消息框测试(API)
        Call TestMsgbox
    End SubPrivate Sub Command3_Click()
        '两数相加测试
        Dim I As Long
        
        I = TestAddNum(1234, 8766)
        MsgBox I
    End SubPrivate Sub Command4_Click()
        '返回指定长度随机字符串测试(LPSTR)
        Dim I() As Byte, J As Long
        
        ReDim I(21)
        J = TestReturnByte(20, VarPtr(I(0)))
        MsgBox "返回字符串长度 = " & J & vbCrLf & vbCrLf & _
               "返回字符串内容(LPSTR) = " & StrConv(I, vbUnicode)
    End SubPrivate Sub Command5_Click()
        '返回指定长度随机字符串测试(BSTR)
        Dim I As String, J As Long, K As Long
        
        I = String(40, Chr(0))    J = TestReturnStr(40, I)
        MsgBox "返回字符串长度 = " & J & vbCrLf & vbCrLf & _
               "返回字符串内容(BSTR) = " & I
    End Sub
    其中TestDLL.dll就是通过此插件编译出来的DLL........
      

  5.   

    不可能把  Doing 地址 在哪?
      c as class1 只不过是个引用地址 
      

  6.   

    查看 Class1 的属性,将 Instancing 设为 6 - GloablMultiUse
    假定工程名为 Project1,就可以用 Project1.Doing 的方式调用。