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

請問delphi call dll檔的問題

尚未結案
per_k
一般會員


發表:8
回覆:10
積分:3
註冊:2002-07-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-24 08:02:02 IP:61.224.xxx.xxx 未訂閱
請問是不是只要是dll檔,都可以被delphi呼叫來使用,而不用管它(dll)是用什麼程式寫成的,如vc ,c builder.....等?謝謝!
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-24 08:21:21 IP:192.168.xxx.xxx 未訂閱
引言: 請問是不是只要是dll檔,都可以被delphi呼叫來使用,而不用管它(dll)是用什麼程式寫成的,如vc ,c builder.....等?謝謝!
原則上是的, 不過要注意,函數的傳遞方式,還有變數的型態轉換...等這些傷腦筋的問題! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
ddy
站務副站長


發表:262
回覆:2105
積分:1169
註冊:2002-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-24 09:32:31 IP:61.218.xxx.xxx 未訂閱
插個花,還有一種dll 是ActiveX dll,使用的方法和一般dll 引用的方式不一樣    
a903
一般會員


發表:5
回覆:13
積分:3
註冊:2003-08-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-27 23:08:02 IP:202.39.xxx.xxx 未訂閱
小弟有一專案需Call一DLL範例是C的寫法 LONG SLE4442_Read_Main_Memory (         IN HANDLE hCard,         OUT LPBYTE pbRecvBuffer,         IN LONG aStartAddr,         IN OUT LPDWORD pcbRecvLength, ); 在Delphi 我是用:    unit SmartCardL; interface type TConnect=function:Integer; stdcall; TDisConnect=function(x:THandle):Integer; stdcall; TPowerUp=function(x:THandle):Integer; stdcall; TReadSC =function(x:THandle;sStr:String;Start:integer;Len:word):Integer; stdcall; THandle =Integer; implementation end.    主程式用: procedure TMainM.Button4Click(Sender: TObject); var Handle:THandle;     ReadSC:TReadSC;     i:Integer;     Buf:array [1..200] of char; begin   Handle:=LoadLibrary('Imtscr.DLL');   if Handle<>0 then begin     @ReadSC:=GetProcAddress(Handle,'SLE4442_Read_Main_Memory');      if (@ReadSC<>nil) then begin       i:=ReadSC(SCHandle,Buf,0,20);     end else       ShowMessage('使用函數"ReadSC"時錯誤!');     FreeLibrary(Handle);      Memo1.Lines.Add('ReadSC='+IntToStr(i));     Memo1.Lines.Add(Buf);   end; end;    不過一直出錯,我想是參數傳遞錯誤吧< > 請高手高高手指教..< >
系統時間:2024-07-07 6:59:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!