如何在DLL中处理类

时间:2010-03-05 18:49:40  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:;2、必须有类的数据导出处理,接口中处理的应是标准数据类型,想在导出函数中直接处理类只会增加你的麻烦。注:可以利用接口处理导出类,但那对 OLE 或许还有用,对于一般的应用,简而避之。下面是一个例子:DLL:
  正文:在进行 Delphi 编程时,许多人喜欢将类的处理放到应用程序本身。但如果能够
利用 DLL 来处理类,将会使你的应用增色不少。

DLL 中的类与普通类没有什么差别,对于DLL 的处理,只要记住两个要点:
1、不能在一端分配内存,而在另一端释放;
2、必须有类的数据导出处理,接口中处理的应是标准数据类型,想在导出函数中
直接处理类只会增加你的麻烦。

注:可以利用接口处理导出类,但那对 OLE 或许还有用,对于一般的应用,简而避之。

下面是一个例子:
DLL:


type
TMyDLLClass = class
private
FData: string;
public
constructor Create;
destructor Destroy; override;

property Data: string read FData write FData;
end;

定义几个通用的接口:


type
TMyDLLOBJ = type Pointer; //定义 DLL 中的通用对象指针

function CreateMyDLLObj: TMyDLLOBJ; stdcall; //初始化类
function DoneMyDLLObj(OBJ: TMyDLLOBJ); stdcall; //释放类

然后增加你的导出函数:


procedure FetchMyDLLData(OBJ: TMyDLLOBJ; Buffer: PChar; Size: Longint): stdcall;
var
MyDLLClass: TMyDLLClass;
begin
  MyDLLClass := TMyDLLClass(OBJ);
  if MyDLLClass <> nil then
  StrPLCopy(Buffer, MyDLLClass.Data, Size);
  
end;

看出来了吗,就这么简单,而且相当可靠。我的应用大多采用这种处理方式,在 DLL 中处理
数据库,用一个数据记录来传递和处理信息。应用程序完全与数据库分开,要更换数据库类型,
只要更新 DLL,应用程序根本不必改动!而且不管用什么语言作主应用,都可以利用 Delphi 的
强大部分(单元结构 - 让你的代码容易管理;TList - 我用得是最多的一个类,加载数据表;以
及 string ,可以使你在处理串时偷到不少懒...)来使你的应用更加容易开发!

"如何在DLL中处理类"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Language/Delphi/13067.html


关键字:

关于《如何在DLL中处理类》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td