smuslrash 发表于 2006-3-8 10:31:30

大家好~关于DLL调用我想问个问题

1。按照精华区的文章
vb的dll
public sub msg(strMsg as string)
          msgbox strMsg
End sub
生成 msgstr.dll文件
robot脚本中
dim i as object
set i = createobject("project.Class1")
…………
…………

运行过程中的错误是
runtime error '429'' - module dll line 9 ,object creation failed - bad object class

2. 如果robot中这样写,
declare sub msgstr Lib "msgstr" (a as integer)
Sub Main
msgstr(2)
End Sub
运行会显示
failed to load f:\autora\project\testdatastore\defaulttestscriptdatastore\tms_scripts\dll.rec sub or function 'msgstr in dll 'msgstr' not found

谢谢~
节日快乐'

pcl2004_27 发表于 2006-3-9 23:02:07

注册了么?

在运行中 写入
regsrvr32dll包含路径
这册dll

这样你就可以直接用了
set i = createobject("project.Class1")

smuslrash 发表于 2006-3-15 11:05:57

注册了
Robot中的代码如下
dim objshell as object
Set objShell = CreateObject("Wscript.shell")
objShell.run("RegSvr32 F:\AutoRA\dll\1\Project.dll")
         Dim a as object
          set a = createobject("Project.class1")
          a.msg("s")
         
DLL 为Project.dll
运行中先提示 F:\AutoRA\DLL\1\Project.dll 中的DLLRegisterServer成功
然后还是runtime error '429'' - module dll line 9 ,object creation failed - bad object class
不知道哪里错了
谢谢楼上的回答
望赐教

yangfengwait 发表于 2006-3-22 12:58:54

帮你顶下,我也要问这个问题

qjwxsd 发表于 2006-3-24 11:14:10

调用Dll 说明

1.调用普通DLL
Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
调用失败会提示:sub or function "***" not found.

2.调用COM接口DLL,在VB中即ActiveX dll
dim o as object
set o = createobject("project1.Class1")
o.msg "hello dll"
调用前,先将DLL 注册(regsvr32 X:\*.dll),这样CreateObject 才能找到路径
如果没注册会提示"429 bad object class"

[ 本帖最后由 qjwxsd 于 2006-3-24 11:29 编辑 ]
页: [1]
查看完整版本: 大家好~关于DLL调用我想问个问题