新建一个工程:
点击OK,其它都是Next一直到Finish.
工程建好后,可以看到如下类视图:
点击Project->Add Class…
选择ATL Simple Object
在Short name输入新加类名:
点击Finish可以看到类视图多一一个接口Ikuan
在接口上面增加一个方法:
输入方法名
选择参数类型和输入参数。
点击完成就可以了。
打开kuan.cpp在方法Add增加代码,如下:
STDMETHODIMP Ckuan::Add(LONG nNum1, LONG num2, LONG* nRet) { // TODO: Add your implementation code here *nRet = nNum1 + num2; return S_OK; }
写一个测试工程:
新工程,我们选择一个Win32的Console就行了。
#include "stdafx.h" #include<iostream>
1:
using namespace std;
#include "../ATLComDemo/ATLComDemo_i.c"
#include "../ATLComDemo/ATLComDemo_i.h"
2:
#import " .... ATLComDemo.tlb "
#include "../ATLComDemo/ATLComDemo_i.c"
using namespace std
3:
#import "../ATLComDemo/ATLComDemo.dll" raw_interfaces_only, raw_native_types, no_namespace, named_guids
int _tmain(int argc, _TCHAR* argv[]) { //声明HRESULT和Ikuan接口指针 Ikuan * IkuanATL = NULL; HRESULT hr = CoInitialize(NULL); //初始化COM //使用SUCCEEDED宏并检查我们是否能得到一个接口指针 if(SUCCEEDED(hr)) { hr = CoCreateInstance(CLSID_kuan, NULL, CLSCTX_INPROC_SERVER, IID_Ikuan, (void **)&IkuanATL); //如果成功,则调用AddNumbers方法,否则显示相应的出错信息 if(SUCCEEDED(hr)) { long ReturnValue; IkuanATL->Add(8,9,&ReturnValue); cout << "The answer for 8+9 is:" << ReturnValue << endl; IkuanATL->Release(); } else { cout << "CoCreateInstance Failed." << endl; } } CoUninitialize();//释放COM return 0; }