手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

非COM环境下的接口编程--问题,技巧,应用(一)

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!