用ATL编写COM并调用

1 新建ATL工程
2 添加一个Class
Visual C++ -> ATL -> COM
命名为TestClass
3 用ClassView添加函数Func1,(不是在TestClass类中添加函数,而是在接口ITestClass添加,只有这样,调用它的dll才能看到这个COM里边的函数)
4 OCX完成。
5 新建MFC DLL,用来调用上面COM中的函数Func1
6 在这个mfc项目添加Class, Visual C++ ->MFC->TypeLib的MFC Class
在File选项中找到前面编译生成的.dll文件(路径为Solution根目录下Debug里)
7 调用COM里的函数之前,需要实例化对象,

    CoInitialize(NULL);
    CDPINCOMCCO0 cdpin0;
    CLSID clsid = cdpin0.GetClsid();
    //CLSIDFromProgID(OLESTR("testAtl_ocx.MyCom"), &clsid);
    //CLSIDFromString(_T("{e42436e8-fecb-4b84-81f5-86a4197bb366}"), &clsid);
    CComPtr<_DPINCOMCCO> pGetRes; //_DPINCOMCCO为接口名
    pGetRes.CoCreateInstance(clsid);
    pGetRes->CheckHealth(1L); // CheckHealthCOM中的类CDPINCOMCCO 里的函数
    pGetRes.Release();
    CoUninitialize();

8 在第6步中加载dll时,不能获取CLSID,可以选择Visual C++ ->MFC->ActiveX Control的MFC Class,会自动生成获取CLSID的代码。如果能看到OCX的源码,可以直接查看CLSID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值