首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb 动态调用DLL,该如何解决

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

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

VB code
dll名称为testclass ,类名为class1Public Function UpdateMethod(ApplyNo As String) As IntegerDim aaa As StringDim bbb As IntegerDim ccc As MethodForHi.Methodaaa = Trim(ApplyNo)bbb = ccc.UpdateRecord(aaa, 12)MsgBox aaaUpdateMethod = bbbEnd 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.ClearEnd Sub

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

[解决办法]
ccc有实例化么?
[解决办法]
建议你把错误处理语句先去掉,然后单步调试一下,看看问题出在哪一句上?
VB code
dll名称为testclass ,类名为class1Public Function UpdateMethod(ApplyNo As String) As IntegerDim aaa As StringDim bbb As IntegerDim ccc As MethodForHi.Methodaaa = Trim(ApplyNo)bbb = ccc.UpdateRecord(aaa, 12)MsgBox aaaUpdateMethod = bbbEnd FunctionPrivate 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.ClearEnd Sub
[解决办法]
Set obj = CreateObject("testclass.class1")
请确认你的声明对不对,格式: 类工程名.类名

[解决办法]
Set obj = CreateObject("MethodForHi.Method")
[解决办法]
Set obj = CreateObject("testclass.class1")
'之后,测试一下
if not obj is nothing then

....
end if

[解决办法]
我也遇到类似问题,不过有不同,同时做了两个动态引用类,第一个正常,第二个出现报错。
关注
[解决办法]
能这么用就不是类,动态引用肯定会错
Dim ccc As MethodForHi.Method
aaa = Trim(ApplyNo)
bbb = ccc.UpdateRecord(aaa, 12)
MsgBox aaa
UpdateMethod = bbb
[解决办法]
dll名称为testclass ,类名为class1
Public Function UpdateMethod(ApplyNo As String) As Integer
Dim aaa As String
Dim bbb As Integer
Dim ccc As MethodForHi.Method

set ccc=new MethodForHi.Method
'ccc可能需要设置参数,如果需要则设置相关参数
aaa = Trim(ApplyNo)
bbb = ccc.UpdateRecord(aaa, 12)
MsgBox aaa
UpdateMethod = bbb
End Function
[解决办法]
Set obj = CreateObject("MethodForHi.Method")

这个才是类名
[解决办法]
探讨
动态引用时,就报错,以下是动态引用的代码

[解决办法]
我也遇到类似的问题!
------解决方案--------------------


Dim ccc As new MethodForHi.Method

热点排行
Bad Request.