raise EClientDllError.Create(''''No found of Proc "ClientInsertTrigger".'''');
//可选接口,即使不存在也不报错。
FClientGetDescription := GetProcAddress(csClientGetDescription);
FClientSetup := GetProcAddress(csClientSetup);
inherited;
end;
procedure TClientDll.DoDllUnLoaded;
begin
inherited;
FClientInitialize := nil;
FClientInsertTrigger := nil;
FClientGetDescription := nil;
FClientSetup := nil;
end;
end.
3.2.2 组件使用
procedure TXXXXServer.LoadClientDll(const FileName: String);
//功能:加载一个ClientDll,并将相关数据传递进去
var
Index: Integer;
Description: String;
UseTrigger: Bool;
AClientDll: TClientDll;
begin
Index := FClientDlls.Add(FileName);
if Index < 0 then
raise EXXXXError.CreateFmt(''''ClientDll "%s" 之前已经装载.'''', [FileName]);
//尝试读取地址
try
FClientDlls[Index].Loaded := True;
finally
if not FClientDlls[Index].Loaded then
FClientDlls[Index].Free;
end;
//初始化该Client,同时将相关信息传入
UseTrigger := False;
AClientDll := TClientDll(FClientDlls[Index]);
if Assigned(AClientDll.ClientSetup) then
AClientDll.ClientSetup(mscAppPath + ''''Client\'''', False);
end;
3.3 服务端组件
3.3.1 组件定义
unit untServerDll;
interface
uses
Windows, Classes, SysUtils, untDllManager, untProcDefine;
type
EServerDllError = Class(Exception);
{ TServerDll
o 继承自 TDll;
o 自动获取 QueryInterface 地址并保存在QueryInterface属性中;
}
TServerDll = Class(TDll)
private
FFunctions: TObject;
FQueryInterface: TProcQueryInterface;
protected
procedure DoDllLoaded; override;
procedure DoDllUnLoaded; override;
public
procedure RefreshAllFunctionsPermit;
property Functions: TObject read FFunctions write FFunctions;
property QueryInterface: TProcQueryInterface read FQueryInterface;
end;
implementation
uses
untFunctionProc;
上一页 [1] [2] [3] 下一页 [系统软件]InstallShield Express for delphi制作安装程序定… [系统软件](转帖) 忘记登录密码的解决方案 for XP/2003/2000 [系统软件]交叉编译sshd for IXP425 ARM Platform by MVL 3… [常用软件]InstallShield Express制作Delphi数据库安装程序 [Delphi程序]为什么选择Delphi.Net ? [Delphi程序]《关于VisiBroker For Delphi的使用》(4) [Delphi程序]Delphi 程序员代码编写标准指南 [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro… [Delphi程序]Borland Delphi 9 的新特性 [Delphi程序]Delphi 键盘码表
|