google搜索 站内搜索                 软件测试门户 | 软件测试培训 | 文章资料精选 | 软件测试论坛 | 测试解决方案 | 软件测试博客 | 测试招聘求职 
打印

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

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


下面这个是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.
每当执行到这句的时候,总是报无效的过程调用或参数,不知道错在哪里了,大家帮我看看......谢谢!

TOP

我也遇到过这样的问题,但是我用的是C#,后面我才知道,Extern.Declare只能用来引用ActiveX控件,就是那种需要regsvr的,能提供外部接口的那种。你这种好象不可以引用。

TOP

好象不是这样的,前面我调用过不需要regsvr32.exe的VC编写的DLL,但这次用以前的方法试了很多次,还是不行.不知道是什么原因,有谁知道的能出来说下吗?

TOP

那就不知道了,反正我用C#写的DLL用Extern是调用不了的!谁有方法就贴上来吧!

TOP

刚才我仔细看了下以前用VC写的那个DLL,里面用了extern,看来我是记错了,如果VC编写的DLL不用extern就不能调用了吗???晕了......大家帮帮忙呀!

TOP

首先要确认micvoid在qtp中是认识的.否则报错.你用Option explicit强制一下

TOP

回复 1# 的帖子


在DLL里面把编译方式换成c的试试     extern "C"

TOP

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

TOP

 
当前时区 GMT+8, 现在时间是 2008-12-5 19:56Copyright(C)上海博为峰软件技术有限公司 2001-2007 电话:021-64471599-8017
当您在访问网站、论坛及博客过程中遇到问题时可发送email:webmaster@51testing.com或发送论坛短信至管理员风在吹