根据ATL COM AppWizard创建一个Simple_ATL的项目,建立一个ATL Object。创建一个组件名称为First的组件。
添加一个First的方法。计算两个数的和。实现方法
STDMETHODIMP CFirst::AddNumbers(long Num1, long Num2, long *ReturnVal)
{
// TODO: Add your implementation code here
*ReturnVal=Num1+Num2;
return S_OK;
}
编译成功后
使用Tool/RegisterControl菜单注册该组件
客户端调用方法
#include <iostream.h>
#include "E:/cpp_test/com/Simple_ATL/Simple_ATL.h"
#include "E:/cpp_test/com/Simple_ATL/Simple_ATL_i.c"
void main(void){
HRESULT hr;
IFirst* Ifirst=NULL;
hr=CoInitialize(NULL);
if(SUCCEEDED(hr)){
hr=CoCreateInstance(CLSID_First,Class identifier (CLSID) of the object
NULL,Pointer to whether object is or isn't part
CLSCTX_INPROC_SERVER,//Context for running executable code
IID_IFirst,//Reference to the identifier of the interface
(void**)&Ifirst///Address of output variable that receives
);
if(SUCCEEDED(hr)){
long ReturnValue;
Ifirst->AddNumbers(13,7,&ReturnValue);
cout << ReturnValue << endl;
Ifirst->Release();
}else{
cout << "Failed" << endl;
}
}
CoUninitialize();
}