51Testing软件测试论坛

标题: 在QTP里如何给函数输入字符型参数 [打印本页]

作者: herseeing    时间: 2009-6-18 13:42
标题: 在QTP里如何给函数输入字符型参数
我用c++写了一个dll,定义了一个函数:
QTPDLL_API int COMPUTEDLL(int p1,int p2,char op)
{
        switch(op)
        {
                case('+'): return p1+p2; break;
                case('-'): return p1-p2; break;
                case('*'): return p1*p2; break;
                case('/'): return p1/p2; break;
        }
       
}
现在我想在qtp里调用这个函数,如:
extern.COMPUTEDLL(10,20,'+')
由于vbscript不支持char型变量,这个加号参数'+'不知道怎么输入?哪位大虾能指点迷津?谢谢
作者: ziheng198688    时间: 2009-6-18 14:03
楼主可以直接传入'+', VBS会自动将它视为char型变量的 have a try
作者: intothestorm    时间: 2009-6-18 14:08
标题: Try this
Extern.Declare micInteger, "COMPUTEDLL", "xxx.dll", "", micInteger, micInteger, micChar
Extern.COMPUTEDLL(10,20,"+")

[ 本帖最后由 intothestorm 于 2009-6-18 15:14 编辑 ]
作者: herseeing    时间: 2009-6-18 14:52
不行啊,单引号在qtp里是注释符号。不加单引号吧就提示语法错误。郁闷哟!!
作者: intothestorm    时间: 2009-6-18 15:15
笔误,应该是双引号。
作者: herseeing    时间: 2009-6-18 15:28
问题仍旧没有解决,双引号则提示“invalid procedure call or argument.....”
在线期待高人指点,不甚感激!
作者: intothestorm    时间: 2009-6-18 17:06
你有将这个函数导出吗?
在函数的上一行加上extern "C" __declspec(dllexport),然后重新编译。
这个是干嘛用的?——》QTPDLL_API

[ 本帖最后由 intothestorm 于 2009-6-18 17:20 编辑 ]
作者: herseeing    时间: 2009-6-18 17:35
当然有导出。其他dll中函数都能调用。这个QTPDLL_API就是导出的宏
作者: fei.ge    时间: 2009-6-18 17:50
【由于vbscript不支持char型变量,这个加号参数'+'不知道怎么输入】
<<<vbscript支持char型变量,如:msgbox  "+"
作者: 欧阳    时间: 2009-6-19 09:29
好像你的函数里的case参数用的是单引号,不知道是不是这个原因。
作者: intothestorm    时间: 2009-6-19 09:48
关注,楼主解决了别忘了回来总结一下。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2