51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2946|回复: 6
打印 上一主题 下一主题

[原创] vbs调用active dll方法出错

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-6 16:59:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在有一个DDVariableStore.dll文件,在对象为StringUtilities有一个方法
[id(0x6003001c)]
BSTR GetTrimmedQuotedField(
                [in, out] long* startindex,
                [in, out] BSTR* text,
                [in, out] BSTR* delimiters,
                [in, out] short* fieldID);
现在我要在vbs里调用这个方法:
Dim oStrUtils
Set oStrUtils = CreateObject("DDVariableStore.StringUtilities")
On Error Resume Next
GetTrimmedQuotedField1 = oStrUtils.GetTrimmedQuotedField(1, InputRecord, vbTab, 1)
MsgBox Err.Description

运行到这里总会报一个错误:"类型不匹配"
其中InputRecord为string,vbTab为TAB键
请各位高手们帮帮忙,看一下调用时对象为什么不匹配了,BSTR ,long,short分别应该对应vbs的哪种类型?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-6 17:36:33 | 只看该作者

想想

想想
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-6 18:14:47 | 只看该作者
不懂
关注一下
GetTrimmedQuotedField的里的参数是不是都是指针阿
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2008-5-6 23:59:58 | 只看该作者
    类型不匹配  说明你使用的函数的参数类型有问题,QTP 的 帮助文件是否可以帮你解决这个问题?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2008-5-7 08:47:48 | 只看该作者
    QTP 的 帮助文件是没有这方面的内容的啦,
    另外,这个DDVariableStore.dll的方法用VB调用的语句是
    Function GetTrimmedQuotedField1(InputRecord As String, fieldID As Integer, _
                             delimiter As String) As String
       
        If oStrUtils Is Nothing Then Set oStrUtils = CreateObject("DDVariableStore.StringUtilities")
        On Error Resume Next
        GetTrimmedQuotedField1 = oStrUtils.GetTrimmedQuotedField(1, InputRecord, Chr$(9), fieldID)

    End Function

    这句话是没有错误的,所以不会是指针
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2008-5-7 09:13:21 | 只看该作者
    谢谢高手的帮忙,这个问题已经找到了解决的方法了,呵呵
    在vbs里把下面的语句
    GetTrimmedQuotedField1 = oStrUtils.GetTrimmedQuotedField(1, InputRecord, vbTab, 1)
    改成
    GetTrimmedQuotedField1 = oStrUtils.GetTrimmedQuotedField(cint(1), cstr(InputRecord), cstr(vbTab), cint(1))
    就可以了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    7#
    发表于 2008-5-7 22:52:17 | 只看该作者
    使用了 Cint  和 Cstr函数 后转换了参数的类型,说明还是参数的类型的问题
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-23 11:03 , Processed in 0.104543 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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