(1)首先将COM组件DLL拷贝到客户程序Debug目录下,将XXX_i.c和XXX_i.h拷贝到工程文件夹下。
(2)#include "ATLProject1_i.h"
#include <comutil.h>
#pragma comment( lib, "comsupp.lib " )
包含组件程序中的头文件,同时包含COM库所需的头文件comttil.h。
(3)组件程序调用代码示例
void CUseATLCOMDlg::OnBnClickedButton1()
{
IFun *iFun = NULL;
LONG pResult;
//COM库初始化
HRESULT hr = CoInitialize(NULL);
if(FAILED(hr))
{
MessageBox(_T("Coinitialize failed! "));
return ;
}
// 创建COM对象
hr = CoCreateInstance(CLSID_Fun,NULL,CLSCTX_ALL, IID_IFun,(void **)&iFun);
if(FAILED(hr))
{
MessageBox(_T("create com failed! "));
CoUninitialize();
return ;
}
hr = iFun->Add(12,11,&pResult);
if(SUCCEEDED(hr))
{
CString str;
str.Format(_T("12+11=%d"),pResult);
MessageBox(str);
iFun-> Release();
CoUninitialize();
return ;
}
else
{
MessageBox(_T("create iFun->Add failed! "));
}
// 释放分配的内存
iFun-> Release();
CoUninitialize();
}