使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例

转载 2013年12月06日 10:01:18

1.创建一个ATL COM AppWizard工程,如图:

2.  选择 Dynamic link Library (DLL),其它两个请百度,或参照其它文档。如下图:

3. 添加一个自己的COM类,用于导出需要用到的接口。步骤如下:

选择类视图->右键工程->新建类(New Class) 如下图:

弹出对话框后,选择 ATL CLASS,输入类名,如下图:

然后,在类视图中,你会看到:

多了一个接口和一个类,这都是你刚才添加的。

4. 添加导出接口。

右键 "IHelloWorld"->AddMethod,如下图:

弹出对话框,填写函数名及参数即可,如下图:

然后,我们再看 IHelloWord, 如下图:

接口已经有了,而且它已经自动在  CHellowWorld 类中加了实现代码,双击这个上图中的选中的Show就会跳转到定义,如下图:

作为示例,我们弹出一个消息框好了,代码如下:

STDMETHODIMP CHellowWorld::Show(int iWhat)
{
    // TODO: Add your implementation code here
    TCHAR szMsg [512] = {0};
    sprintf(szMsg, "Hello World - iWhat:%d", iWhat);
    MessageBox (NULL, szMsg, "First Com Project", MB_OK | MB_TOPMOST);
    return S_OK;
}

 

到这里,我们编译生成一下。

5. 注册COM组件,可以使用命令行进行注册,regsrv32 xxx.dll,不过为了方便,我们不准备使用手工,我们可以在链接完成后直接注册,设置工程,设置如下:

6.编写调用例程。

创建一个控制台项目,项目源码如下:

复制代码
#include "stdafx.h"
#include "../ComDemo.h"
#include "../ComDemo_i.c"

int main(int argc, char* argv[])
{
    CoInitialize(NULL);
    IHellowWorld* pHello = NULL;
    IUnknown * pUnk = NULL;
    HRESULT hr;
    //(2)创建实例对象,获取IUnknown接口指针
    hr = ::CoCreateInstance(
        CLSID_HellowWorld,
        NULL,
        CLSCTX_INPROC_SERVER,    // 以进程内组件 DLL 方式加载
        IID_IUnknown,            // 想取得 IUnknown 接口指针
        (LPVOID *) &pUnk);
    if( FAILED( hr ) )  
    {
        printf("没注册吧\n");
        return -1;
    }
    
    hr=pUnk->QueryInterface(IID_IHellowWorld,(LPVOID *)&pHello);
    if (FAILED (hr)) {
        printf("QueryInterface hello2 失败\n");
        return -1;
    }
    pHello->Show (2);
    CoUninitialize();
    return 0;
}
复制代码

其中的 ComDemo.h 和 ComDemo_i.c,请看一下COM组件的文件视图,截图如下:

然后运行一下就可以看到效果了。

 

参考资料:

http://hi.baidu.com/laocui172/item/c0bac2ab45e35f9e151073ae

http://xulin.blog.51cto.com/264387/84852

相关文章推荐

使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例

原文地址:http://www.cnblogs.com/lin1270/archive/2013/04/02/2997042.html 1.创建一个ATL COM AppWizard...

Mac上反编译Android-apk傻瓜式记录。

Android反编译

傻瓜式快速搭建PHP开发环境:介绍几款AMP套装

这里介绍几款可以傻瓜式快速搭建PHP开发环境的AMP套装。搭建PHP开发环境(LAMP或WAMP),也就是在Linux或Windows上安装并配置好PHP、Apache、MySql等,基本上是每本PH...

VC6.0开发asp服务器COM组件

  • 2013年11月06日 09:16
  • 155KB
  • 下载

(转)2012移动开发工具盘点:傻瓜式游戏工具引擎

摘要:人生最大的痛苦莫过于想开发游戏但不会编程,不过随着技术的发展,一切皆有可能。下面八款傻瓜式移动游戏开发工具可以助你一臂之力,它们是Construct 2、GameMaker、Stencyl、Mu...
  • gxj1680
  • gxj1680
  • 2013年07月25日 16:41
  • 816

微商城---傻瓜式教你微信支付收货地址接口开发(PHP)

至从微信流行以来,微商城像

IntelliJ IDEA 下的SVN使用(傻瓜式教学)

第一步:下载svn的客户端,通俗一点来说就是小乌龟啦!去电脑管理的软件管理里面可以直接下载,方便迅速 下载之后直接安装就好了,但是要注意这里的这个文件也要安装上,默认是不安装的,如果不安装,sv...

Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT)

以后工作中要用到android开发,所以想搭建好开发环境,笔记本装的是win7,在网上找了找相关资料,发现博客园有一片介绍搭建Android开发环境的文章,所以转载过来方便以后查看。转载地址:http...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用VC6.0开发COM组件 - 傻瓜式,不讲理论,只讲实例
举报原因:
原因补充:

(最多只允许输入30个字)