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