// Client.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <Windows.h>
#include <atlbase.h>
#include <iostream>
#include "../MyMathLib/MyMathLib.h"
#include "../MyMathLib/MyMathLib_i.c"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
::CoInitialize(NULL);
IMathObj* pObj;
IDispatch* pDisp;
HRESULT hr;
hr = CoCreateInstance(CLSID_MathObj,NULL,CLSCTX_INPROC,IID_IMathObj,(void**)&pObj);
if (hr!=S_OK)
{
cout<<"CoCreateInstance Error."<<endl;
::CoUninitialize();
return 0;
}
hr = pObj->QueryInterface(IID_IDispatch,(void**)&pDisp);
if (hr!=S_OK)
{
cout<<"QueryInterface Error."<<endl;
::CoUninitialize();
return 0;
}
DISPID dispid;
OLECHAR* szMember = L"Subtract";
hr = pDisp->GetIDsOfNames(IID_NULL,&szMember,1,LOCALE_SYSTEM_DEFAULT,&dispid);
CComVariant avarParams[2];
avarParams[0] = 14;
avarParams[0].vt = VT_I4;
avarParams[1] = 10;
avarParams[1].vt = VT_I4;
CComVariant varResult;
DISPPARAMS params = { avarParams, NULL, 2, 0 };
hr = pDisp->Invoke(dispid,IID_NULL,LOCALE_SYSTEM_DEFAULT,DISPATCH_METHOD,¶ms,&varResult,NULL,NULL);
LONG i = varResult.lVal;
CLEANUP:
::CoUninitialize();
return 0;
}
http://blog.163.com/danshiming@126/blog/static/109412748201181093635797/
http://hi.baidu.com/zhengjiong/blog/item/53fa741e23a9731741341791.html