51Testing软件测试论坛

标题: 调用dll文件 [打印本页]

作者: jfcf    时间: 2006-7-12 16:06
标题: 调用dll文件
qtp可以象WR一样调用DLL文件吗? 如果可以是如何调用的?最好能写个例子,谢谢
作者: xiaonan    时间: 2006-7-12 17:54
可以.vbscript去调用dll文件
作者: jfcf    时间: 2006-7-13 09:42
斑竹可否举一个简单的例子
作者: QA_BAY    时间: 2006-7-13 09:52
ExecuteFile("F:\test.dll")  如果没有封装的DLL可以这样调用
作者: jfcf    时间: 2006-7-13 09:59
封装的DLL呢?
作者: QA_BAY    时间: 2006-7-13 10:10
原帖由 jfcf 于 2006-7-13 09:59 发表
封装的DLL呢?


你还真懒阿,你用我说的那种方法试一下!封装的我没有试过!
试完随便告诉我一下,哈!
作者: jfcf    时间: 2006-7-13 10:20
老大,你说的没封装的,我昨天下午就试过了
作者: 梦醒十分    时间: 2006-7-13 10:29
标题: 调用Dll看图学习(懒人学习法)
生成的Dll拷到当前的QTP工程路径下。
作者: QA_BAY    时间: 2006-7-13 10:32
sdlkfj3sdlkfj3sdlkfj3
说得很清楚.顶
作者: jfcf    时间: 2006-7-13 10:39
感谢   梦醒十分 提供详细说明

[ 本帖最后由 jfcf 于 2006-7-13 12:10 编辑 ]
作者: 梦醒十分    时间: 2006-7-13 12:15
第一句就说了,放在当前QTP工程文件夹下就行了。

请高手能否也像我这样抓个用VC来写的dll图集。

我觉的抓图对于初学者很有帮助,省得问来问去,而且中间看的人也不容易明白。

[ 本帖最后由 梦醒十分 于 2006-7-13 12:20 编辑 ]
作者: jfcf    时间: 2006-7-13 13:06
用vb编译的dll文件成功了,但是用vc++编译的文件却不行。
qtp中的语句是
set a=createobject("aaa.CAaaApp")
vc工程见下图
运行出错:ActiveX部件不能创建对象:‘aaa.CAaaApp’
请各位老大帮忙看看
作者: yang    时间: 2006-7-13 14:34
不错啊,呵呵,学习了。
作者: jfcf    时间: 2006-7-14 09:53
各位斑竹,该问题还未解决,请看第12楼,哪位好心人帮帮忙啊
作者: higkoo    时间: 2006-11-29 17:11
标题: 回复 #8 梦醒十分 的帖子
好启示,我也正在研究QTP调用DLL的问题。sdlkfj6
作者: Jimmyshao    时间: 2006-11-29 20:15
记得论坛上放过这个文档的.......
作者: 重新开赌    时间: 2006-12-4 18:01
This good artical about call dll, thanks
作者: sky-vid    时间: 2007-3-9 15:58
标题: 那个PDF文档太简单了,解决不了问题
我照着这个文档用C#写了个函数,源码如下
using System;

namespace CheckERPV5
{
        /// <summary>
        /// ck_Project 的摘要说明。
        /// </summary>
        public class ck_Project
        {
                public static string Ck_ProjectID(string id)
                {
                        return id;
                }
        }
}

生产的dll名字为 C_Shape_CheckERPV5.0.dll

QTP脚本代码
Dim id

extern.Declare micString , "Ck_ProjectID", "D:\C_Shape_CheckERPV5.0.dll", "ck_Project",micString
id=extern.ck_Project.Ck_ProjectID("6")
msgbox(id)

在QTP中调用出错!
出错提示:无效的过程调用或参数
有哪位仁兄解决了问题的告诉大家一下啊 sdlkfj9
作者: hiyizhiyu    时间: 2007-3-13 17:52
在说明文档中micString类型等同于char *,是否可以用micString 等同C#中的string 类型呢?
我这边没有C#的环境,希望哪位老大可以指点一下
mark
作者: Coffey111111    时间: 2007-4-1 14:57
是不是你的C_Shape_CheckERPV5.0.dll没有生成啊?没有生成.dll文件,造成的条用失败!我试了你写的C#代码,没有生成.dll文件的呀sdlkfj5
作者: allrounder    时间: 2007-4-4 22:46
不错,支持。
作者: songfun    时间: 2007-4-30 09:43
id=extern.ck_Project.Ck_ProjectID("6")
这句没问题?

原帖由 sky-vid 于 2007-3-9 15:58 发表
我照着这个文档用C#写了个函数,源码如下
using System;

namespace CheckERPV5
{
        ///
        /// ck_Project 的摘要说明。
        ///
        public class ck_Project
        {
                public static string Ck_ProjectID(str ...

作者: lucky520    时间: 2007-5-8 17:08
3qq
作者: jackymail    时间: 2007-9-4 10:34
id=extern.ck_Project.Ck_ProjectID("6")
出错在这句上,应该id=extern.CK_ProjectID("6")就可以了。

那个别名不知道干什么用的,反正不应该用别名作为方法!
谁知道别名干什么的阿?
原帖由 sky-vid 于 2007-3-9 15:58 发表
我照着这个文档用C#写了个函数,源码如下
using System;

namespace CheckERPV5
{
        ///
        /// ck_Project 的摘要说明。
        ///
        public class ck_Project
        {
                public static string Ck_ProjectID(str ...

作者: wenfeng0187    时间: 2007-10-25 16:37
原帖由 jackymail 于 2007-9-4 10:34 发表
id=extern.ck_Project.Ck_ProjectID("6")
出错在这句上,应该id=extern.CK_ProjectID("6")就可以了。

那个别名不知道干什么用的,反正不应该用别名作为方法!
谁知道别名干什么的阿?



这人仁兄说的正点,我也刚想这么说了!!
作者: tomtang    时间: 2007-11-11 21:55
学习中,谢谢。

作者: kakamissyou    时间: 2007-11-28 21:50
标题: extern估计只能调用com,activex,api
其实dll,也有普通的dll和com,activex,API.

extern这种写法估计是调用外部实现的,所以只能调com,activex,API.不能调普通dll.

vb可成功是因为是activex,可以跨语言,类似com.

c#不能成功是因为你建的是普通的dll,要编译成托管com才行,具体怎么弄,自己去搜一下,我以前

学习c#时做过个类似的例子.

c++,我不懂.不妄言.
作者: wxy1208    时间: 2008-10-9 11:41
8楼的兄弟蛮清楚的
作者: dyc611    时间: 2008-12-12 16:48
好东西,顶啊
作者: jscn1982    时间: 2009-4-16 10:38
来参观学习一下
作者: letitbe_163    时间: 2009-9-4 21:02
标题: qtp调用vb 的 dll失败
我按照8楼的方法从qtp调用vb的dll怎么一直失败?dll文件直接拷贝放在qtp工程目录下面,qtp运行的时候报错如下:

ActiveX 部件不能创建对象: 'AAA.Class1'
Line (1): "Set a = CreateObject("AAA.Class1")".

请大侠指点啊
作者: letitbe_163    时间: 2009-9-4 21:15
标题: 问题解决了,呵呵,谢谢8楼的兄弟
问题解决了,呵呵,谢谢8楼的兄弟
作者: saiqi5092    时间: 2010-4-26 14:37
thanks!~`
作者: frogno1    时间: 2010-8-5 08:55
学习了
作者: luxiuxiu1987    时间: 2010-9-19 15:43
不错,最近正在学这块~
作者: 17800455    时间: 2010-10-25 15:46
set obj = createobject("dll文件名.封装的class名","dll路径")

通过obj. ____去调用绝对不会有问题我试过了..
作者: SundyG    时间: 2010-11-2 14:50
回复 16# Jimmyshao

不错,谢谢分享
作者: gy168    时间: 2011-4-10 16:19
回复 8# 梦醒十分


    相当详细
作者: warchief09    时间: 2012-2-11 15:51
借鉴下  感谢
作者: muyunsihe    时间: 2012-4-17 17:18
宝藏啊简直是,谢谢各位
作者: weiweixiaocao    时间: 2012-5-12 21:33
没有问题,坚决支持
作者: summerdenis    时间: 2012-5-16 11:54
请问这个问题 你是怎么解决的呀。谢谢。
作者: summerdenis    时间: 2012-5-16 11:56
我按照8楼的方法从qtp调用vb的dll怎么一直失败?dll文件直接拷贝放在qtp工程目录下面,qtp运行的时候报错如 ...
letitbe_163 发表于 2009-9-4 21:02



    请问letitbe_163,这个问题你是怎么解决的,谢谢。
作者: cynthia59    时间: 2012-5-22 17:33
set obj = createobject("dll文件名.封装的class名","dll路径")

通过obj. ____去调用绝对不会有问题我试 ...
17800455 发表于 2010-10-25 15:46



    Set oautoit = createobject("autoitx3.control")
这句在win7 64位系统下总是报错,提示:ActiveX部件不能创建对象“autoitx3.control”
加了dll路径也不行。有办法解决吗?
作者: hudemou    时间: 2012-10-17 15:43
回复 32# letitbe_163
作者: hudemou    时间: 2012-10-17 15:45
回复 31# letitbe_163


兄弟,你这个报错怎么解决的?
我这在学qtp调用dll文件,求解!!!




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