google搜索 51Testing站内搜索                    软件测试门户 | 软件测试培 训 | 文章资料精选 | 软件测试论坛 | 软件测试博客 | 测试招聘求职 
打印

一个简单的dll

一个简单的dll


1.先用VB做了个DLL
Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer
Sum = a + b
End Function
2.加载
RUN regsvr32 d:\dll2\a.dll
3.在ROBOT中写脚本
Declare Function Sum Lib "a.dll" (Byval a as integer,ByVal b as integer) as integer

Sub Main
Dim Result As Integer

'Initially Recorded: 2004-07-05 18:02:07
'Script Name: asdf
dim i as integer
i=Sum(2,3)
msgbox i

End Sub
4.运行,出现提示信息

5.烦请各位指点一下

miludeer 上传了这个图片:

TOP

两种方法
一种 createobject
一种 win32 api
       loadlibrary的方式可以解决

TOP

上边的问题是由于vb编写dll的特点造成,vb的dll默认是个class,所有的function sub都默认是他的方法,所以robot找不到sub function
下边是解决方法

      vb的dll代码
     public sub msg(strMsg as string)
          msgbox strMsg
    End sub
   robot调用该sub

       sub main
          dim a as object
          set a = createobject(''project.class1")
          a.msg(''s")
          set a =nothing
         
      end sub
     如上就可以正常使用了
   
如果你用其他的语言编写的dll,就不会出现上边的问题

TOP

pcl2004_27
你真的很牛,真是太佩服了

TOP

好,呵呵。学习。
TESTer

TOP

真厉害


TOP

“)

TOP

")

TOP

TOP

.)

TOP

set a = createobject(''project.class1")

TOP

)::   ):     )"

TOP

vb的dll代码
     public sub msg(strMsg as string)
          msgbox strMsg
    End sub
   robot调用该sub

       sub main
          dim a as object
          set a = createobject(''project.class1"
          a.msg(''s"
          set a =nothing
         
      end sub

TOP

学习了

TOP

请问怎么执行第二步的【加载RUN regsvr32 d:\dll2\a.dll】啊?
如果是其他加载其他文件怎么声明呢?比如我直接写在一个GUI脚本里,怎么在另一个GUI脚本中声明呢?
请在线的大虾指教啊,谢谢。

TOP

 
当前时区 GMT+8, 现在时间是 2008-10-13 07:51Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹