+ -
当前位置:首页 → 问答吧 → vb 动态调用DLL

vb 动态调用DLL

时间:2011-08-23

来源:互联网

各位vb达人,哥们搞了个vb的dll,现在想动态调一下,正常静态引用该dll没有异常,先贴出来dll代码
VB code

dll名称为testclass ,类名为class1
Public Function UpdateMethod(ApplyNo As String) As Integer
Dim aaa As String
Dim bbb As Integer
Dim ccc As MethodForHi.Method
aaa = Trim(ApplyNo)
bbb = ccc.UpdateRecord(aaa, 12)
MsgBox aaa
UpdateMethod = bbb
End Function

注: dll里就这一个方法 ,methodforhi.method是另外一个类

动态引用时,就报错,以下是动态引用的代码
VB code

Private Sub Command1_Click()
 On Error GoTo errorHandle:
    Dim obj As Object
    Dim ret As String
    Dim fu As Integer
    
    Set obj = CreateObject("testclass.class1")
    fu = obj.UpdateMethod("123")
    ret = CStr(fu)
    MsgBox ret
    Set obj = Nothing
    Exit Sub
    
errorHandle:
    MsgBox Err.Description & " --"
    Err.Clear
End Sub


报的错误信息是:未设置对象变量或 with block 变量--
各位VB大牛,能否指点一二

作者: zhuazhuqingchong   发布时间: 2011-08-23

ccc有实例化么?

作者: xxyj6450   发布时间: 2011-08-23

建议你把错误处理语句先去掉,然后单步调试一下,看看问题出在哪一句上?
VB code

dll名称为testclass ,类名为class1
Public Function UpdateMethod(ApplyNo As String) As Integer
Dim aaa As String
Dim bbb As Integer
Dim ccc As MethodForHi.Method
aaa = Trim(ApplyNo)
bbb = ccc.UpdateRecord(aaa, 12)
MsgBox aaa
UpdateMethod = bbb
End Function


Private Sub Command1_Click()
'On Error GoTo errorHandle:
    Dim obj As Object
    Dim ret As String
    Dim fu As Integer
    
    Set obj = CreateObject("testclass.class1")
    fu = obj.UpdateMethod("123")
    ret = CStr(fu)
    MsgBox ret
    Set obj = Nothing
    Exit Sub
    
errorHandle:
    MsgBox Err.Description & " --"
    Err.Clear
End Sub





作者: Veron_04   发布时间: 2011-08-23

热门下载

更多