如何动态加载DLL动态链接库(50分)

  • 主题发起人 惊天动地
  • 开始时间

惊天动地

Unregistered / Unconfirmed
GUEST, unregistred user!
[?]我是初学者,我不知道如何动态的加载DLL动态链接库,请高手帮忙,最好再举一些例子。谢谢!!!
 
项目中的一段代码,看看吧
{TDriver}
constructor TDriver.Create(aDeviceName, aDriver: String);
begin
//加载驱动程序动态链接库
FHandle := LoadLibrary(PChar(aDriver));
if FHandle <> 0 then
begin
//获取接口函数
@FClassFactory := GetProcAddress(FHandle, 'ClassFactory');
if Assigned(FClassFactory) then
try
//构造设备实例
FDevice := FClassFactory.Create(nil, aDeviceName);
FDriver := aDriver;
except
TLogFile.WriteLn('设备"%s"的实例创建失败, 请检查驱动程序"%s"是否有效',
[aDeviceName, aDriver]);
end
else
begin
TLogFile.WriteLn('驱动程序"%s"接口函数不存在', [aDriver]);
end;
end
else
begin
TLogFile.WriteLn('驱动程序"%s"加载失败, 可能是文件不存在.', [aDriver]);
end;
end;

destructor TDriver.Destroy;
begin
if Assigned(FDevice) then FreeAndNil(FDevice); //释放设备
if FHandle <> 0 then FreeLibrary(FHandle); //释放驱动程序
inherited Destroy;
end;
 
谢谢!可以再详细一点吗?(怎么声明、实现等)
 
顶部