日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QTP调用DLL

發布時間:2024/4/15 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QTP调用DLL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[color=darkred][i][b]Search1:[/b][/i][/color]
關于DLL文件:
DLL嚴格意義上說 dll 是微軟的 私有格式, 不是 C/C++標準中的, 也無法跨平臺的。

其中作用為實現可重復性代碼的集合和exe沒有本質區別,很難被反編譯,因此,即使有了dll文件,仍然不能看到里面具體寫了什么,當然現在有很多工具,能逐步識別dll文件的反編譯匯編語言

dll工程里面有個dllmain文件,相當于exe文件,但是dll文件不能單獨運行,此main文件里面有入口參數,主要作用是機器判斷是線呈還是進程,就是一個空殼,和程序員無關,switch ul reason for attach這個值。

test.h文件里主要寫具體此函數是做什么的。原理上可以是任何語言

qtp或者lr調用都可

  QTP擁有自己的.NET Factory接口,以調用.NET生成的DLL,也可以使用Extern.Declare來進行外部的DLL的訪問。

  語法:

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

  參數說明:

  RetType: 方法返回值的類型。

  MethodName:調用DLL文件中的某個方法的方法名。

  LibName: DLL文件名。

  Alias: 別名,當別名為空時,方法名和別名一樣(此參數通常為空)。

  ArgType(s): 傳入的參數。

當然,要放在測試腳本路徑下,文件,Action中使用如上語法就可以調用了

LR也一樣LR_load_dll(testdll.dll)就可以調用了

當然還需要配置dat文件/dat directory之下將最后一行改為dll名稱
將winnt_dll屬性改為testdll.dll


[color=darkred][i][b]Search2:[/b][/i][/color]
第一種是ActiveX對象生成的Dll
  在這里的外部dll非本機生成,則在qtp訪問前必須在本機器注冊,方法為:regsvr32 d:\dll文件路徑;取消注冊為:
  regsvr32 /u D:\dll文件;
  當然在本機器上生成的dll則不需要注冊;
  注冊完成后,就可以在qtp中利用createobject方法調用注冊的dll文件了;
  set res=CreateObject("文件名.類名")
  res.方法
  這樣就可以用res調用dll文件中的各種方法了。
  第二種方法是利用Extern object
  可以利用Extern.Declare 聲明,如下面所示:
  Extern.Declare micInteger , "Add", "E:\QTP\DLL\LRDllTest.dll", "Sum", micInteger, micInteger
  res = Extern.Add(1,1)
  Msgbox res
  sum為dll文件中的函數,Add為sum所命的別名;
  第三種方法是利用DotNetFactory對象
  在QTP中為訪問.net對象,專門提供了DotNetFactory對象。通過DotNetFactory可以訪問.NET對象的屬性和方法。


[color=darkred][i][b]Search3:[/b][/i][/color]
What is a DLL?
Dynamic Linked Library is MS implementation of shared library concept in Windows. To understand this term more clearly, DLL can be broken down into Dynamic Link(ed) + Library

Dynamic Link means that the subroutines of a library are loaded into an application program at runtime, rather than being linked in at compile time, and remain as separate files on disk.
Library is a collection of subroutines
How to know about the functions in a DLL?
It is assumed that if you intend to call a DLL, you should know the function to be called from inside and what that function does. If you are clueless about how to get the function names you can get download Microsoft Dependency Walker or a 3rd party utility called PE Explorer which can help you to find the functions.

How can the functions inside DLL be called from QTP?
This part is actually simple and a two step process…

Declare the method using Extern.Declare
Example
Extern.Declare micHwnd, “FindWindow”, “user32.dll”, “FindWindowA”, micString, micString
where:

micHwnd -the data type of value returned by method
FindWindow -the user supplied procedure name. You can set it to anything as long as it’s a valid syntax.
user32.dll -the DLL from where you wish to call the method
FindWindowA -The actual method name inside the DLL
Last two are the data types of the arguments that will be passed to the procedure
Call the method
Example:

Extern.FindWindow(“Notepad”, vbNullString)
To show the above process in action, here is an example to change the title of the Notepad window by calling the user32.dll


1: 'Declare FindWindow method
2: Extern.Declare micHwnd, “FindWindow”, “user32.dll”, “FindWindowA”, micString, micString

3:’Declare SetWindowText method
5: Extern.Declare micLong, “SetWindowText”, “user32.dll”, “SetWindowTextA”, micHwnd, micString

7: ‘Get HWND of the Notepad window
8: hwnd = Extern.FindWindow(“Notepad”, vbNullString)
10: if hwnd = 0 then
12: MsgBox “Notepad window not found”

14: end if

16: ‘Change the title of the notepad window
17: res = Extern.SetWindowText(hwnd, “LearnQTP.com”)

Simple copy-paste the code above in your QTP ‘Expert View’. Open a blank notepad window. Run this code. You will now see that the name has changed from Untitled-Notepad to LearnQTP.com


Windows7+QTP/UFT11.5恢復30天試用破解:
http://www.51testing.com/?uid-306685-action-viewspace-itemid-831140
附件為QTPL, 去后綴 .zip

總結

以上是生活随笔為你收集整理的QTP调用DLL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 好吊妞在线 | 亚洲第一成年人网站 | 男女在线观看视频 | 国产白丝喷水 | 美女av在线播放 | 无码国产精品久久一区免费 | 性——交——性——乱免费的 | 国产亚洲一区二区三区在线观看 | 成人综合网站 | 日韩美女激情视频 | 国产欧美日韩精品在线观看 | 38在线视频 | 欧美成人黄色小视频 | 黄色在线观看网址 | 欧美日韩高清一区二区 | 国产精品污www一区二区三区 | 色呦呦入口 | 日韩欧美四区 | 国产精品久久久久99 | 91免费视频免费版 | 人人玩人人干 | 午夜精品国产精品大乳美女 | 亚洲免费视频播放 | 成人av网址在线观看 | 91手机在线观看 | 国产精品一亚洲av日韩av欧 | 在线国产黄色 | √资源天堂中文在线视频 | 国产激情一区二区三区四区 | 五月天激情影院 | sese久久 | 牛av| 日本新japanese乱熟 | 爱情岛论坛自拍亚洲品质极速最新章 | 大胸美女啪啪 | 日本少妇激三级做爰在线 | 亚州a级片| 欧美日韩一区二区三区在线视频 | 五月激情在线 | 国产人妻人伦精品1国产丝袜 | 97超碰色| 性欧美色图 | 久久久久久久久国产精品一区 | 夜av| 亚洲精品无码不卡在线播he | 日韩v| 国产精品宾馆在线精品酒店 | 97久久国产| 激情欧美日韩 | 青娱乐在线视频观看 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 夜夜操夜夜操 | 欧美成人精品一区二区三区 | 亚洲一区二区人妻 | 黄色av网站在线免费观看 | 国产精品入口麻豆九色 | 亚洲国产精品无码久久久 | 四虎永久网址 | 午夜免费一区二区 | sm乳奴虐乳调教bdsm | 亚洲系列在线观看 | 日本电影大尺度免费观看 | 国产日韩一区二区在线观看 | 综合激情视频 | 欧洲xxxxx | 华丽的外出在线 | 久久久久久久久久久av | 激情视频激情小说 | 亚洲视频一二三 | 男生脱女生衣服 | 精品国产传媒 | 国产在线精品观看 | 欧美视频一区二区 | 国产簧片 | 国产精品成人电影在线观看 | 91啪国产在线 | 精品免费一区二区三区 | 国产91一区二区三区在线精品 | 日韩在线无| 美女福利网站 | 午夜免费一级片 | 免费性视频 | 国精产品一品二品国精品69xx | 天堂影视av | 亚洲v在线观看 | 91精品久久久久久久久 | 天堂资源网 | 日韩精品中文字幕在线观看 | 色偷偷av男人的天堂 | 黄频在线免费观看 | 丰满人妻一区二区 | 黄色片视频 | 91免费小视频 | 国产91在线观看丝袜 | 91高跟黑色丝袜呻吟动态图 | 国产最新网址 | 国产免费看av| 91麻豆精品国产91久久久无需广告 | 日韩欧美一区二区三区久久婷婷 |