日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Ruby調(diào)用DLL方法簡(jiǎn)介

今天,我們要為大家講解有關(guān)Ruby調(diào)用DLL的一些技巧方法,希望初學(xué)Ruby的朋友可以通過(guò)本文介紹的內(nèi)容熟練掌握這一技巧應(yīng)用。開(kāi)源測(cè)試工具watir是采用的Ruby語(yǔ)言進(jìn)行開(kāi)發(fā)的。#t#

創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái),是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元巴彥做網(wǎng)站,已為上家服務(wù),為巴彥各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話(huà):18982081108

在研究watir框架的時(shí)候,發(fā)現(xiàn)有一部分函數(shù)watir沒(méi)有提供而且暫時(shí)沒(méi)找到合適的gem包,而很多功能在我們?cè)瓉?lái)的自動(dòng)化測(cè)試框架中都通過(guò)c寫(xiě)的dll進(jìn)行了實(shí)現(xiàn),于是我們希望能夠把這部分的dll無(wú)縫的移植到watir上,減少我們的工作量,而且可以更高效的實(shí)現(xiàn)我們需要的功能。

在Ruby調(diào)用DLL的開(kāi)源項(xiàng)目中,Win32Api這個(gè)gem可以實(shí)現(xiàn)我們需要的功能。通過(guò)以下方法 ,我們就可以調(diào)用外部dll中的函數(shù)。

Win32Api.new(dllname, proc, import, export)

參數(shù)說(shuō)明

dllname:dll文件的名字,如果想只寫(xiě)dll的名字,可以將dll放到system32目錄或者當(dāng)前目錄下,或者寫(xiě)上dll文件所在的路徑

proc: dll中函數(shù)的名字

import:函數(shù)傳入?yún)?shù)的參數(shù)類(lèi)型,其中 "p" 對(duì)應(yīng)指針,"n","l"對(duì)應(yīng)long,"i"對(duì)應(yīng)int,"v" 對(duì)應(yīng)void,如果有多個(gè)參數(shù),可以通過(guò) ["p","n"]數(shù)組的方式來(lái)實(shí)現(xiàn),其中置為nil可以表示沒(méi)有參數(shù)

export:函數(shù)的返回值類(lèi)型,參數(shù)類(lèi)型同上

Win32API#call([args ...])

調(diào)用dll中的函數(shù),參數(shù)和返回值應(yīng)該與new申明中的一致,如果返回一個(gè)指針,需要事前初始化,否則可能會(huì)有內(nèi)存溢出問(wèn)題。

例子:

有個(gè)dll的頭文件的申明為:

extern "C" long PASCAL EXPORT BMPToJPG(char *jpg,char *bmp);

那么在將指定的dll文件放在當(dāng)前目錄,Ruby調(diào)用DLL代碼如下

 
 
 
  1. require 'rubygems'  
  2. require 'Win32Api'  
  3. JPG=Win32API.new(File.dirname(__FILE__)+"\\JpgDll.dll","BmpToJpg",["p","p"],"l")  
  4. JPG.call("D:\\1.bmp","D:\\1.jpg") 

執(zhí)行上述Ruby調(diào)用DLL代碼后,就能把D盤(pán)下的1.bmp文件另存為 1.jpg文件。


網(wǎng)站名稱(chēng):Ruby調(diào)用DLL方法簡(jiǎn)介
分享路徑:http://www.5511xx.com/article/cdghhee.html