51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2476|回复: 3
打印 上一主题 下一主题

[原创] 从QTP 中调用DLL库中的Function遇到的问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-7-25 19:17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道你们从DLL 库中 调用里面的function时候 用到 micByRef参数没有:
‘VB中的声明方法
'Public Declare Function ConnectDatabase Lib "fbdll4vb20.dll" (ByVal servername As String, ByVal dbn
ame As String, ByVal username As String, ByVal password As String) As Boolean

'Public Declare Function ExecuteSelect Lib "fbdll4vb20.dll" (ByVal dmlCommand As String, ByRef retVal As String, retlen As Long) As Long

’QTP里的声明方法
Extern.Declare micInteger , "ConnectDatabase", "c:\fbdll4vb20.dll", "ConnectDatabase", micString , micString, micString , micString

Extern.Declare micInteger , "ExecuteSelect", "C:\fbdll4vb20.dll", "ExecuteSelect", micString , micString +micByRef , micInteger +micByRef

‘调用部分
。。。。

    Dim rv
    Dim rcount
    Dim rlen
    Dim result
    Dim xmldoc
    result = Space(1)
    rv = Extern.ConnectDatabase("localhost", "c:\NRM5.GDB", "SYSDBA", "masterkey")
    rcount = Extern.ExecuteSelect("SELECT name  FROM profiles where id =1", result, rlen)
。。。。
   
    结果:
    rv =1 这个说明 ConnectDatabase 成功,但是 在调用ExecuteSelect,也就是Select的结果 写回到 result 或者 rlen的时候,系统报错“General Error”。
   
    我比较头痛,对 micString +micByRef 换了各种类型都无济于事,查过Mercury KnowledgeBase
那里面的例子也没什么特别的。另外发现调用DLL里的function对于QTP时比较危险的,很容易就会造成整个QTP系统Crash掉。
    这条路走不通 我只能换办法了,呵呵!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-7-26 01:38:16 | 只看该作者
我也碰到了同样的问题
一个自己写的VB ActiveX dll,在vb里面调用没有问题,但是一旦到QTP
连SET obj=createobject("Progid")这样都出错了,简直晕倒了
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-7-26 09:37:25 | 只看该作者
不知道 你是不是 按照网上 教的办法 编译的DLL,我 最后没办法 自己把函数包装在VB ActiveX dll里调用,结果一到调用函数的地方 QTP 就Crash了
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2006-7-27 02:12:09 | 只看该作者
关于vb写的Activex dll,我已经解决了我碰到的问题,虽然解决的原因我也摸不清楚到底是为什么,但是至少解决了

不过说到c++写的dll,我就跟郁闷了,一个好好的dll,在WR调用工作正常,可是在QTP里面去一点用都没有
没法工作,郁闷呀
难道就是因为是用BCB写的吗
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-26 07:46 , Processed in 0.064960 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表