Delphi Open Tools Api实例研究(二)
先行知识:Delphi/接口/DLL/COM(了解)
难度:★★☆☆☆
在开始之前先说一些题外话,这段时间一直很忙(马上就要期末考试,而且最惨的是现在正在忙着准备即将到来的英语4级考试),所以自己也不知道这篇文章够不够份量。这篇文章的内容可能不是太多,但我还是抽时间把它写了出来作为我们的Delphi Open Tools Api实例研究(二)。另外我又发现了一些很不错的关于这方面的资料和网站,一并在文后推荐给大家。
还记得上次的实例研究一吗?我们展示了一个通过设计时组件包扩展delphi的例子。这次我们仍将做一个实际意义的delphi插件,菜单仍向上次一样不变,不过这次的不是上次的向源文件插入一行代码,而是向当前工程中添加一份开发文档,并显示在delphi的代码编辑器中提供给开发者修改。(同时也保存在工程文件所在的目录下)。然而这次与上次有一个很大的不同,也是这次最重点要说的地方是:我们将把这次的插件编译成dll,而不是上次的组件包,这给创建自己更人性话的插件安装程序(而不是叫用户打开一个组件包来自己安装)提供了机会。
先来看看这次的重点,我们建立了一个动态连接库项目,并在加入的第一个单元文件内实现了我们的插件类。与上次不同的是,我们并不采用传统的组件注册过程Register,而是在单元类定义了一个类型为TwizardInitProc的全局函数,并在项目文件中以WizardEntryPoint名称导出(注意:必须使用这个名称。)
exports
InitNewMenu name WizardEntryPoint;
下面是单元中的这个函数的原形和实现:
function InitNewMenu(const BorlandIDEServices:IBorlandIDEServices;
RegisterProc:TWizardRegisterProc;var Terminate:TWizardTerminateProc):boolean;stdcall;
//RegisterProc:TWizardRegisterProc; 参数用来创建向导,实际上这个初始化函数是用来创建一个 dll
// 形式的传统 Wizard 这种时候就可以向 RegisterProc 参数传递一个实现了 IOTAWizard 的类实例,用以
// 注册向导,如同这样 RegisterProc(xxx.Create) 。这里我们只是使用这个函数作为初始化 dll 的入口点
复制本页网址和标题,发送给你QQ/Msn的好友一起分享
上一篇:Delphi Open Tools Api实例研究(一)
下一篇:Delphi Shell