貌似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........
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........
c as class1 只不过是个引用地址
假定工程名为 Project1,就可以用 Project1.Doing 的方式调用。