…
end;
现在我们就得到所加载的每一个插件的接口并可进行操作了。从上面的代码中可以大概的看出一些我们需要管理对象的DLL的样子:这个DLL只有一个唯一的导出函数以获得其中维护的对象的接口(GetPlugIntf,也有可能有其它的导出函数,但这个是必须的),这个函数可以返回一个对象实现的接口也可以直接返回Iunknown接口(这样便于用一个数组管理所有的插件接口,也利于用循环结构实现程序,就象上面看到的那样),主程序在需要的时候进行转换。另外我们的主程序需要和Dll共用一个描述接口的文件(契约)。返回接口导出的函数看起来象这样:
var
OurObject:TintfObject;
…
function GetFooObjectIntf:IUnKnown;stdcall;
begin
if not assigned(OurObject) then
begin
OurObject:= TintfObject.Create;
…
end;
result:= OurObject as IUnKnown;
end;
有了上面的描述后可以看到要在一个普通的DLL中维护对象并象COM一样发布对象的接口也是一件很简单的事情,没什么特别的,不过上面的讨论有一个很大的问题:如果我们的
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




