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

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

新聞中心

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

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

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

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

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

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

參數(shù)說明

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

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

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

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

Win32API#call([args ...])

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

例子:

有個dll的頭文件的申明為:

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

那么在將指定的dll文件放在當前目錄,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盤下的1.bmp文件另存為 1.jpg文件。


本文標題:Ruby調(diào)用DLL方法簡介
網(wǎng)站URL:http://m.5511xx.com/article/cdghhee.html