佚名通过本文主要向大家介绍了atl组件,atl34砂轮,atl方形动力电池,atl80.dll官方下载,atl71.dll一键修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 讨论ATL组件升级的问题
描述:
解决方案1:
描述:
用VC6开发ATL COM组件,
如何使接口改动后,原有的应用不用重新编译。
注册表中好像有版本管理的机制,不知如何在代码中控制。
解决方案1:
定义一个新的接口(通常是在老接口名的后面加个2随便看习惯),接口中要包含老接口的所有接口函数,当然在实现端就用老接口的一份实现.在新接口中加入你要升级的新的接口函数,或者是对老接口的函数的生机版(通常是在老接口函数名的后面也加个2,随便看习惯).
老接口:
interface ISample : IUnknown
{
HRESULT DoSomething();
HRESULT Func();
};
新接口:
interface ISample2 : IUnknown
{
HRESULT DoSomething(); // 不改变这个函数还是使用老的实现.
HRESULT Func(); // 不改变这个函数还是使用老的实现.
HRESULT Func2(); // 新的函数对Func()的升级版本.
HRESULT NewFun(); // 一个新的函数.
}