DLL檔案在Delphi的建立及呼叫 (轉)
主題:DLL在的建立及
現時的開發,多數都在幾人以上的組合,工合作方式開發,這樣也方便系統的開發目的。
而DLL的方法最為方便。我現整理了一些這方面資料,希望能幫助一些有需要的同學(記得我剛學時,請人教是一不可想象的事)。
一.過程的寫法:
library FIRSTDLL;
uses
SysUtils,
Classes;
{$R *.RES}
// 1.定義函式具體過程和輸出介面方式
// --------------------------------
// 函式 1
// 功能:事資料3倍放大函式
// --------------------------------
function BBnToSSnn(SourceResult:Integer):Integer;stdCall;
begin
if SourceResult>0 then
Result:=SourceResult+3 //結果存放於Result
else
Result:=SourceResult;
end;
exports
BBnToSSnn; //2.函式輸出口定義
end.
==
==
二.在DLL中建立Form
=======================
1.一步,建立DLL工程,及加入設定好的Form
library MGRPERSN;
uses
SysUtils,
Classes,
MGRPERFM in 'MGRPERFM.pas' {FormPERSON};//1.Form的程式碼(與一般的Form一樣)
{$R *.RES}
exports
ShowPerSN;//2.函式輸出口定義
begin
end.
2. 在DLL設定的Form的設定
===========================================
unit MGRPERFM;
interface
uses
, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, ToolWin, ImgList;
type
TFormPERSON = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
//些處的變數不再用,給其改個地方,如下(改變之一)
//var
// FormPERSON: TFormPERSON;
{宣佈Form函式出口}//改變之二
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL; StdCall;
implementation
{$R *.DFM}
//函式據過程定義
function ShowPerSN(AHandle: THandle; ACaption: String):BOOL;
var
FormPERSON: TFormPERSON; //定義窗體類(上面的放到了此處)
begin
//複製應用程式控制程式碼給DLL的應有程式
Application.Handle := AHandle;
FormPERSON := TFormPERSON.Create(Application);//建立TForm
try
FormPERSON.Caption := ACaption;
FormPERSON.ShowModal;//顯示此Form
Result := False; //反回成功值
finally
FormPERSON.Free;
end;
end;
三.DLL中函式及窗體的呼叫
==========================
1.呼叫方法一
--------------
implementation //在此的下方寫明呼叫函式的DLL
{$R *.DFM}
//DLL內函式呼叫
function BBnToSSnn(SourceResult:Integer):Integer;
StdCall external 'FIRSTDLL.DLL';
........
2.呼叫方法二
==============
type //在此建立一個函式類
// 1 -------------------------------
TShowPerSN = function (AHandle: THandle; ACaption: String): BOOL; StdCall;
EDLLLoadError = class(Exception);//同時分建立一個出錯記錄類
// 1 -------------------------------
TMAINCLTR = class(TForm) //這裡不變,系統自動生成
......
procedure TMAINCLTR.ToolButton1Click(Sender: T);
var //按鈕的呼叫事件:呼叫過程
LibHandle: THandle;
ShowPerSN: TShowPerSN;
begin
Application.Title:='人力資源管理系統DLL檔案測試程式';
{ Attempt to load the DLL 嘗試裝入DLL檔案}
LibHandle := LoadLibrary('MGRPERSN.DLL');
try
if LibHandle = 0 then
raise EDLLLoadError.Create('無法成功裝入MGRPERSN.DLL');
@ShowPerSN := GetProcAddress(LibHandle, 'ShowPerSN');
if not (@ShowPerSN = nil) then
ShowPerSN(Application.Handle, '人事資料管理')//呼叫出窗體
else
RaiseLastError;
finally
FreeLibrary(LibHandle); // Unload the DLL.
end;
end;
============== END ==================
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在ASP檔案中呼叫DLL (轉)
- Qt DLL總結【二】-建立及呼叫QT的 DLLQT
- 使用Delphi呼叫C++編寫的DLLC++
- C#呼叫Delphi的dll之詳解C#
- java中呼叫dll檔案的步驟Java
- JAVA呼叫C語言下的DLL檔案JavaC語言
- 讓SQL Server呼叫DLL檔案的方法詳解SQLServer
- DLL檔案中Form的使用 (轉)ORM
- 追捕檔案WRY.DLL的淺顯分析及程式示例 (轉)
- delphi讀取ini檔案 (轉)
- 再談在VB中呼叫VC++開發的DLL (轉)C++
- 在Windows Phone專案中呼叫C語言DLLWindowsC語言
- Sql Server 資料庫中呼叫dll檔案的過程SQLServer資料庫
- 如何建立Electron + Vue3專案, 並呼叫C# dllVueC#
- 使用DLL檔案中封裝的視窗 (轉)封裝
- asp.net網頁中呼叫c#寫的dll檔案ASP.NET網頁C#
- 怎樣在C++Builder中建立使用DLL (轉)UI
- 獲取檔案路徑(Delphi )----轉貼
- Delphi編碼標準——檔案命名 (轉)
- 使用ikmv將jar轉換為dll,在.NET中直接呼叫JAR
- Delphi與Word(三)取得Word檔案的資料 (轉)
- vs下建立並呼叫DLL--簡單例子單例
- 利用Delphi 5中呼叫Excel 97 (轉)Excel
- Dll中匯出類--Delphi實戰之一 (轉)
- Vb下呼叫Help檔案 (轉)
- 配置檔案的建立分配及刪除
- Delphi中除錯dll方法除錯
- 快速建立檔案列表(轉)
- Delphi呼叫javasoJava
- 反射呼叫DLL反射
- 批處理檔案(bat檔案)註冊dll批量註冊dllBAT
- 使用C#建立webservice及三種呼叫方式 (轉)C#Web
- 減小Delphi的Exe檔案大小
- 全方位解讀DLL檔案—編寫DLL
- 騰訊 IVWEB 團隊:通過 ffi 在 Node.js 中呼叫動態連結庫 (.so/.dll 檔案)WebNode.js
- dll檔案是什麼 dll檔案用什麼軟體開啟
- 檔案合併新思路(附完整DELPHI程式碼) (轉)
- 用DELPHI為ASP開發檔案上載元件 (轉)元件