组件对象模型(COM)开发详解:从对象生命周期管理到错误处理
1. 对象生命周期管理
1.1 传统方式的问题
在处理对象的生命周期时,传统的 TV 客户端代码存在一些问题。例如, Delete 方法在多个不同的地方被调用,客户端代码需要记住只创建了一个对象(使用 CreateInstance 函数),因此即使代码处理的是来自该对象的多个接口,也只能调用一次 Delete 。对于简单的 TV 客户端代码来说,这可能不是一个巨大的负担,但在更复杂的应用程序中,跟踪创建和删除的对象数量既繁琐又容易出错。
1.2 示例代码
以下是简化后的客户端代码示例:
int main(int argc, char* argv[])
{
IGeneral* pVCR = CreateInstance("vcr.dll");
bool bRetVal = UseSVideoIfAvailable(pVCR);
if (false == bRetVal) {
bRetVal = UseVideoIfAvailable(pVCR);
}
if (false == bRetVal) {
// Neither S-Video nor Video
cout << "This VCR does not have the signals we support"
<< endl;
}
pVCR->Delete();
超级会员免费看
订阅专栏 解锁全文
1426

被折叠的 条评论
为什么被折叠?



