在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型变量,这个加号参数'+'不知道怎么输入?哪位大虾能指点迷津?谢谢 楼主可以直接传入'+', VBS会自动将它视为char型变量的 have a try
Try this
Extern.Declare micInteger, "COMPUTEDLL", "xxx.dll", "", micInteger, micInteger, micCharExtern.COMPUTEDLL(10,20,"+")
[ 本帖最后由 intothestorm 于 2009-6-18 15:14 编辑 ] 不行啊,单引号在qtp里是注释符号。不加单引号吧就提示语法错误。郁闷哟!! 笔误,应该是双引号。 问题仍旧没有解决,双引号则提示“invalid procedure call or argument.....”
在线期待高人指点,不甚感激! 你有将这个函数导出吗?
在函数的上一行加上extern "C" __declspec(dllexport),然后重新编译。
这个是干嘛用的?——》QTPDLL_API
[ 本帖最后由 intothestorm 于 2009-6-18 17:20 编辑 ] 当然有导出。其他dll中函数都能调用。这个QTPDLL_API就是导出的宏 【由于vbscript不支持char型变量,这个加号参数'+'不知道怎么输入】
<<<vbscript支持char型变量,如:msgbox"+" :lol 好像你的函数里的case参数用的是单引号,不知道是不是这个原因。 关注,楼主解决了别忘了回来总结一下。
页:
[1]