51Testing软件测试论坛

标题: 介个错误是什么原因,请大侠支招!在线等,谢谢! [打印本页]

作者: jscn1982    时间: 2009-4-30 10:22
标题: 介个错误是什么原因,请大侠支招!在线等,谢谢!
我用VC写了dll,函数返回值为int类型,为日志的数量: int LogCount(char FilePath[100])

在QTP中我调用如下
Dim a
Extern.Declare micInteger,"LogCount","C:\PPLiveAutoTest.dll","LogCount",micString
a = Extern.LogCount ("\\172.16.1.2\Log\DataUpload\W3SVC485590181\in090405.log")
If a = 10 then
   print “OK”
End if

当我执行到第4行时,报如下错误:
Run Error
变量使用了一个 VBScript 中不支持的 Automation 类型


如果我直接给a赋值某个数的话,就没有该问题,我想应该与返回值类型有关吧,具体原因我就不清楚了,请各位大侠帮忙解答一下,谢谢! 小弟在线等答案。
作者: lijinshui    时间: 2009-4-30 10:30
你可以先用msgbox a 把a打印出来看看 然后再分析
作者: lijinshui    时间: 2009-4-30 10:31
还有一个可能就是参数格式 有问题
a = Extern.LogCount ("\\172.16.1.2\Log\DataUpload\W3SVC485590181\in090405.log")
作者: jscn1982    时间: 2009-4-30 11:47
我用msgbox a 看, 能够显示正确的结果数值,例如 6 ,同时也就说明了 函数已经正确执行了,应该没问题
但是执行到If a = 10 then 这一句时,还是有同样的问题
作者: hsjzfling    时间: 2009-4-30 12:02
用Vartype看一下a的变量类型看看,试下用CInt转换一下类型之后再执行If语句
作者: jscn1982    时间: 2009-4-30 12:28
谢谢各位大侠。 用Cint转换后可以了。

但是我还想问一下5楼的兄弟,用vartype看了一下,返回值 是22,没查到对应的类型,请问这是怎么回事?




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