Delphi 插件(Plug-ins)创建、调试与使用应用程序扩展(一)[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 jxd_2001 的 blog

sharemen单元放在最前面。图4列出的就是我们这个简单插件的工程源文件。
uses
  sharemem, sysutils, classes,
  main in 'main.pas';
 
{$e plg.}
 
exports
  describeplugin;
 
begin
 
end.

图 4: 简单插件的工程源文件
        虽然插件是一个dll文件,但是没有必要一定要给它一个.dll的扩展名。
实际上,一个原因就足以让我们有理由改变扩展名:当父应用程序寻找要加载的文
件时,新的扩展名可以作为特定的文件掩模。通过使用别的扩展名(我们的例子使
用了*.plg),你可以在一定程度上确信应用程序只会载入相应的文件。编译指示
字$x可以实现这个改变,也可以通过project options对话框的application页来设
置扩展名。
        第一个例子插件的代码是很简单的。图5显示了包含在一个新单元中的代
码。注意,describeplugin原型与外壳应用程序中的tplugindescribe类型相一致,
使用附加的export保留字指定该过程将被导出。被导出的过程名称也将会出现在主
工程源代码的exports段中(在图4中列出)。
unit main;
 
interface
 
  procedure describeplugin(var desc: string);
     export; stdcall;
 
implementation
 
procedure describeplugin(var desc: string);
begin
  desc := 'test plugin v1.00';
end;
 
end.

图 5: 例子插件的主程序
        在测试这个插件之前,要先把它复制到主应用程序的路径下。最简单的办法就
是在主目录的子目录下创建插件,然后把输出路径设置为主路径(project options对
话框的directories/conditionals也可以作这个设置)。

调试

        现在介绍一下delphi 3中一个较好的功能:从ide中调试dll的能力。在dll工
程中可以通过run paramaters对话框指定某程序为宿主应用程序,这就是指向将调
用dll的应用程序的路径(在我们这个例子中,就是刚刚创建的测试外壳程序)。然后
你就可以在dll代码中设置断点并且按f9运行它--就像在一个普通应用程序中做的那
样。delphi会运行指定的宿主程序,并且,通过编译带有调试信息的dll,把你指引到

本文关键:Delphi控件杂项
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top