跳转至

高级架构师

使用 C++ 实现 COM 组件的示例

COM(Component Object Model)是微软提出的用于构建组件化应用程序的标准。COM 允许不同编程语言编写的组件进行互操作。本文将展示如何用 C++ 创建和使用 COM 组件,涵盖接口定义、组件实现、引用计数、对象创建等基本概念。

1. 定义接口

在 COM 编程中,接口是定义组件之间交互的核心部分。所有的 COM 接口都必须继承自 IUnknown 接口,它提供了基本的引用计数和接口查询功能。

下面我们定义一个简单的接口 IHello,它包含一个方法 Hello 用于打印消息。

// IHello.h
#ifndef IHELLO_H
#define IHELLO_H

#include <objbase.h>

// 定义 IHello 接口
class IHello : public IUnknown {
public:
    virtual void Hello() = 0;
};

// 定义 IHello 的 GUID
// {D77A85A0-68F7-4F0C-9B5A-A6D84236A2D1}
DEFINE_GUID(IID_IHello, 
0xd77a85a0, 0x68f7, 0x4f0c, 0x9b, 0x5a, 0xa6, 0xd8, 0x42, 0x36, 0xa2, 0xd1);

#endif

在这段代码中,我们定义了一个接口 IHello,它继承自 IUnknown 并包含一个 Hello 方法。DEFINE_GUID 宏用于生成接口的唯一标识符(GUID),该标识符在 COM 中用于区分不同的接口。

深入了解 COM(Component Object Model)

COM(Component Object Model)是微软提出的一种二进制接口标准,允许不同编程语言编写的组件之间进行互操作。它的设计初衷是使得不同的应用程序可以使用和共享不同语言编写的组件。COM 作为一种中间层协议,定义了组件的交互接口,并通过它实现不同组件间的通信。

论软件系统架构风格

摘要

2015 年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台系统架构为例,讨论了软件架构的选择和应用。在该项目中,我结合实际需要,从开发和维护难度、安全性、稳定性和扩展能力等方面综合衡量,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。平台的研发耗时 10 个月,目前,系统已稳定运行了近两年时间,实践证明,这种架构设计有效的降低了系统的维护和开发成本,增强了系统的安全性、提高了系统的稳定性和扩展能力。

论软件架构的选择

摘要

2015 年初,我所在的公司承担了某集团公司的移动信息化开放平台的建设工作。我在该项目中担任系统架构设计师的职务,主要负责设计平台系统架构和安全体系架构。该平台以移动信息化发展为契机,采用”平台+应用”的模式解决现有应用的集中移动化需求。平台整体的逻辑复杂,对系统的高可用和高扩展能力提出了较高的要求。

本文以平台系统架构为例,讨论了软件架构的选择和应用。在该项目中,我结合实际需要,从开发和维护难度、安全性、稳定性和扩展能力等方面综合衡量,为平台选择了具有表现层、业务逻辑层、数据访问层的三层分层架构。平台的研发耗时 10 个月,目前,系统已稳定运行了近两年时间,实践证明,这种架构设计有效的降低了系统的维护和开发成本,增强了系统的安全性、提高了系统的稳定性和扩展能力。