[英]Create a Delphi Class with external dll functions in it
我需要像这样创建一个类
unit Classname;
interface
type
TSomeClass = class
public
member1 : SomeType;
member2 : AnotherDataType;
....
function SomeFunction: SomeType; stadcall;external 'ExternalDll.dll';
end;
可以吗?
如何从Delphi中的类声明外部函数(存储在ac dll中)
我正在使用Delphi 7。
提前致谢
外部函数不能是类声明的一部分。 您需要使用全局范围声明外部函数,并安排该类的方法然后调用该外部函数。
你可以用这样的伪方法创建一个类:
type
TMyDllClass = class
public
NameOfDllEntryPoint: TFunctionTypeOfDllEntryPoint;
constructor Create;
end;
constructor TMyDllClass.Create;
begin
inherited Create;
LibHandle := LoadLibrary('path\to.dll');
@NameOfDllEntryPoint := GetProcAddress(LibHandle, 'NameOfDllEntryPoint');
end;
MyDllClass := TMyDllClass.Create;
MyDllClass.NameOfDllEntryPoint(some, parameters);
这工作正常,我已经多次完成,例如mitab.dll,libjpeg_turbo.dll和其他dll。 这个想法是通过全局函数减少名称空间的混乱。
注意:为清楚起见,我省略了任何错误处理(例如,如果DLL无法加载或没有入口点)。 在此示例中,这将导致访问冲突,因为NameOfDllEntryPoint字段尚未初始化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.