線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2921
推到 Plurk!
推到 Facebook!

請問delphi呼叫vc寫的指紋機dll檔案問題

答題得分者是:rick060
jhlin88
一般會員


發表:21
回覆:28
積分:9
註冊:2002-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-08-04 16:56:47 IP:122.147.xxx.xxx 訂閱
hi,各位大大

小弟第一次接觸呼叫dll檔案,也爬過一些文章,呼叫方式大概知道,但是因為vc的寫法小弟不懂,遇到下面這一段說明時,沒有能力自己轉成delphi來呼叫,能否請大大幫忙告知如何宣告及使用。

問題1:參數裡面,只有第一個、第二個參數要呼叫,我是否可以只宣告兩個參數就好?我
問題2:我要如何呼叫它呢?(第一個handle*,我查了一下是指標的意思,但在delphi我不會用)
dll檔案如附件。

我的宣告如下:請幫我看一下這樣對不對,我只要執行,就會錯誤,應該是不對
function PSOpenDeviceEx(pHandle : Thandle; nDeviceType : integer) : integer;cdecl;external 'SynoAPIEx.dll';

原始vc函數始說明:
<!--[if gte mso 9]><xml> </xml><![endif]--><!--[if gte mso 9]><xml> Normal 0 0 2 false false false EN-US ZH-TW X-NONE </xml><![endif]--><!--[if gte mso 9]><xml> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:表格內文; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Calibri","sans-serif"; mso-bidi-font-family:"Times New Roman";} </style> int PSOpenDeviceEx(HANDLE* pHandle, int nDeviceType,int iCom=1,int iBaud=1,int nPackageSize=2,int iDevNum=0);
pHandle //用來存取裝置的handle
nDeviceType //裝置類型 使用定義值 “DEVICE_UDisk“
其他:使用串列埠時設定,使用預設值
回傳值: PS_OK 開啟成功
------
JamesLin
rick060
高階會員


發表:2
回覆:112
積分:217
註冊:2009-11-17

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-08-05 08:56:27 IP:60.250.xxx.xxx 未訂閱
//delphi 宣告
function PSOpenDeviceEx(pHandle : Thandle; nDeviceType : Integer ;iCom :Integer = 1;iBaud:Integer = 1 ; nPack:Integer = 2 ;iDenum : integer = 0) : integer;stdcall;external 'SynoAPIEx.dll';

1.vc 傳入的參數不能省略,宣告中的初值只是 compiler 會幫你填
2.vc 出的 dll 通常是 stdcall ,實際上使用 stdcall 還是 cdecl 請詳閱 api 說明
jhlin88
一般會員


發表:21
回覆:28
積分:9
註冊:2002-10-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-08-05 15:02:51 IP:122.147.xxx.xxx 訂閱
感謝大大,已經可以了,另外再詢問另一個問題,我也不知道要怎麼轉換,說明如下:

iBuffer = BufferA -->Delphi要如何轉換?
------
JamesLin
P.D.
版主


發表:572
回覆:3897
積分:3689
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-08-15 09:07:14 IP:118.169.xxx.xxx 未訂閱
這裡看不出BufferA的型態, 你可能要查函式中, BufferA屬性是什麼才有辦法!
===================引 用 jhlin88 文 章===================
感謝大大,已經可以了,另外再詢問另一個問題,我也不知道要怎麼轉換,說明如下:

iBuffer = BufferA -->Delphi要如何轉換?
系統時間:2018-01-20 16:53:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!