`
lihbobo
  • 浏览: 64860 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

QTP调用外部动态库的方法

阅读更多

在Dll库的函数开始要加入“:extern "C"”,这个语句告诉VC编译器,按照C的方式进行编译,而不是按照C++的,否则在QTP中不能识别

在QTP中的调用:

Extern.Declare(RetType, methodName, LibName, Alias[[,ArgType(s)], ...])

Example:

Extern.Declare micHwnd,"FindWindow", "user32.dll","FindWindowsA", micString, micString

如果自己编写的动态库函数,别名参数Alias通常设置为空, 用“”表示

数据类型在VC和QTP中不同,如VC的整形int,在QTP中表示为micIneger, char*表示为micString.

分享到:
评论
1 楼 ktc7000 2012-12-20  
先谢谢了

请问QTP如何引用dll中的函数?
我写了一个转换字符串的dll,
在QTP中引用该dll中的函数convert时候,
报错:类型不匹配'convert'
我的引用格式:
convert ini2,ini1
(convert后面把两个字符串参数用括号括起来会报错)

这个convert函数在C中是这样声明的:
extern "C" _declspec(dllexport) int convert(char *convert, char *cont)
这个函数的意思大体是:在字符数组cont中找到符合条件的字符串并进行替换,并且最终存入convert中。

QTP中调用dll时的格式为
Extern.Declare micInteger,"convert", "convert501.dll","", micString,micString
并且已经把convert501.dll拷贝到XP系统的system32目录下了

相关推荐

Global site tag (gtag.js) - Google Analytics