51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5780|回复: 11
打印 上一主题 下一主题

[原创] QTP中如何调用此类型的DLL文件,VC编写的

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-1 09:09:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这个是VC中的Code:
class ITestInterface
{
public:
       virtual void CreateTesting(const char *lpszIP, unsigned int nCID) = 0;
       virtual void Destroy() = 0;
};
ITestInterface *CreateTestInterface();

这个DLL文件名为TestDll.dll
我在QTP中是这样调用的,
Extern.Declare micVoid,"CreateTesting","D:\TestDll.dll","",micString,micUInteger.
每当执行到这句的时候,总是报无效的过程调用或参数,不知道错在哪里了,大家帮我看看......谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-1 09:42:01 | 只看该作者
我也遇到过这样的问题,但是我用的是C#,后面我才知道,Extern.Declare只能用来引用ActiveX控件,就是那种需要regsvr的,能提供外部接口的那种。你这种好象不可以引用。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-11-1 09:53:54 | 只看该作者
好象不是这样的,前面我调用过不需要regsvr32.exe的VC编写的DLL,但这次用以前的方法试了很多次,还是不行.不知道是什么原因,有谁知道的能出来说下吗?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-11-1 10:10:56 | 只看该作者
那就不知道了,反正我用C#写的DLL用Extern是调用不了的!谁有方法就贴上来吧!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-11-1 10:16:41 | 只看该作者
刚才我仔细看了下以前用VC写的那个DLL,里面用了extern,看来我是记错了,如果VC编写的DLL不用extern就不能调用了吗???晕了......大家帮帮忙呀!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-11-2 16:04:34 | 只看该作者
首先要确认micvoid在qtp中是认识的.否则报错.你用Option explicit强制一下
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-2-29 15:42:24 | 只看该作者

回复 1# 的帖子

在DLL里面把编译方式换成c的试试     extern "C"
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-2-29 16:06:16 | 只看该作者
不明白大家热衷于此做什么?
QTP调用DLL的意义在何处呢?因为QTP中没有被测对象的模型然后自己写DLL定义类和方法支持对QTP不识别的对象的操作吗?
那假如QTP对某种语言(假如称之为Z语言)所定义的控件不支持,是否我们写一个大的Class库,把Z语言中所出现的控件都进行定义然后然后外部调用到QTP中,是否就可以实现对Z语言的支持呢?
这和QTP启动时候出现的Plugin加载界面中加载VB或者WEB或者ActiveX的原理相似吗?或者我说这些根本一点道理都没有?
希望哪位达人指点下
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-4-24 19:37:51 | 只看该作者
好像只能使用Win32 的API,经过封装的其他类或许不好用。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-4-26 10:52:46 | 只看该作者
运行  regsvr32 D:\TestDll.dll
让QTP生成此文件
再在QTP里调用:
Set testCall = CreateObject("TestDll.ClassName")
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2011-4-26 10:52:59 | 只看该作者
楼主可以试试哦
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-4-26 10:55:31 | 只看该作者
不明白大家热衷于此做什么?
QTP调用DLL的意义在何处呢?因为QTP中没有被测对象的模型然后自己写DLL定义类 ...
xiaoyaoke 发表于 2008-2-29 16:06



    我不是达人
但是个人觉得调用DLL可以实现组件功能
在对象处理上外部DLL可以实现JAVA等组件的类似功能吧!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-22 01:17 , Processed in 0.081856 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表