dllloader.pas
来自「EXE+BPL+DLL+Interface項目解決方案演示 經典」· PAS 代码 · 共 66 行
PAS
66 行
unit DLLLoader;
interface
uses
windows, Classes, SysUtils, Forms;
type
TDLLLoader = class(TObject)
private
FHandle: THandle;
FFileName: string;
procedure SetFileName(const Value: string);
protected
function GetApplicationPath: string;
public
constructor Create(DllFileName: string);
destructor destroy(); override;
procedure FreeHandle(); virtual;
property FileName: string read FFileName write SetFileName;
property DLLHandle: THandle read FHandle;
end;
implementation
{ TDLLLoader }//
constructor TDLLLoader.Create(DllFileName: string);
begin
FileName := DLLFileName;
end;
destructor TDLLLoader.destroy;
begin
FreeHandle;
inherited;
end;
procedure TDLLLoader.FreeHandle;
begin
if FHandle <> 0 then
FreeLibrary(FHandle);
end;
function TDLLLoader.GetApplicationPath: string;
begin
result := ExtractFilePath(Application.ExeName);
end;
procedure TDLLLoader.SetFileName(const Value: string);
begin
if FFileName <> Value then
begin
FFileName := Value;
FreeHandle;
FHandle := LoadLibrary(PChar(FFileName));
if FHandle = 0 then
begin
raise Exception.Create('Load Library falut, maybe the ' + FFileName + ' not exists!');
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?