查看完整版本: 一个简单的dll

miludeer 2004-7-6 15:47

一个简单的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 上传了这个图片:
[img]http://www.lyleader.com/soft/thanks3.gif[/img]

pcl2004_27 2004-7-7 14:10

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

pcl2004_27 2004-7-10 12:54

上边的问题是由于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,就不会出现上边的问题

guirongb 2004-10-9 10:10

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

yang 2004-10-19 11:42

好,呵呵。学习。

johnson_cong 2005-3-16 10:46

真厉害

yangfengwait 2005-12-22 10:35

“)

yangfengwait 2005-12-22 10:35

")

yangfengwait 2005-12-22 10:36

:)

yangfengwait 2005-12-22 10:37

.)

yangfengwait 2005-12-22 10:38

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

yangfengwait 2005-12-22 10:41

)::   ):     )"

yangfengwait 2005-12-22 10:42

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

51mobile 2007-5-7 07:51

学习了

j-r-j 2007-8-22 17:19

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