COM 组件技术(三)

1993年Microsoft公布了COM技术,随后推出了COM SDK作为Windows SDK的一个组成部分内置在操作系统中,供开发者使用。为简化COM编程,提高开发效率,又在1995年推出了ATL框架,并于1998年将ATL集成到Visual C++开发环境中,成为Microsoft标准开发工具中的一个重要成员。

前面两篇博客,正是利用COM SDK中的API,直接写的COM组件,虽然很灵活,但是如果组件变多了,就要写很多重复的代码,极易出错。因此本篇博客讲解如何使用visual studio 2015提供的ATL项目模板,快速完成COM组件开发。(使用不同版本的vs,步骤大同小异,可适当灵活处理)。

组件生成后,可编写简单客户端进行测试:

cpp 复制代码
#include <iostream>
#include "ATLDemo01_i.h"

HRESULT com_dll_reference()
{
    //CoInitialize(NULL);
    IXXTerm* pComTest = NULL;
    HRESULT hResult = 0;
    if (hResult == ERROR_SUCCESS)
    {
        hResult = CoCreateInstance(__uuidof(XXTerm), NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&pComTest);
    }
    if (S_OK == hResult)
    {
        IXXTerm* pInner1 = NULL;
        long lVal = 0;
        hResult = pComTest->QueryInterface(__uuidof(IXXTerm), (void**)&pInner1);
        system("pause");
        pInner1->GetStatus(&lVal);
        hResult = pInner1->Release();
        hResult = pComTest->Release();
    }
    //CoUninitialize();
    return hResult;
}

int main()
{
    CoInitialize(NULL);
    com_dll_reference();
    CoUninitialize();
    return 0;
}

项目资源详情请见https://download.csdn.net/download/yuanshenqiang/93691134

相关推荐
_wxd6661 小时前
二叉搜索树(BST)万字详解:概念、操作、性能分析与 C++ 实现
数据结构·c++·二叉搜索树
Source.Liu1 小时前
【A11】客户端登录流程笔记
windows·rust
clz13145212 小时前
Dify的Windows平台部署:从Docker安装到Dify运行
windows·docker·容器
UIU1142 小时前
P1115 最大子段和
c++·算法
wuminyu2 小时前
ZGC染色指针在虚拟线程stackChunkOop上的并发屏障全景分析
java·linux·c语言·jvm·c++
蜗牛互联网2 小时前
Python Agent 工具调用:审批令牌、参数白名单和累计预算
java·开发语言·人工智能·windows·后端·python
INGNIGHT2 小时前
486. 预测赢家(博弈dp/区间dp)
linux·c++
aqiu1111113 小时前
【C++算法打怪专栏】LeetCode 1. 两数之和(哈希表解法总结)
c++·算法·leetcode
fpcc3 小时前
c++编程实践—thread_local变量的应用
c++