?? areatest.cpp
字號:
// AreaTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "..\AreaSvr\AreaSvr.h"
#include "..\AreaSvr\GUID.h"
#include "..\AreaSvr\AreaSvr_i.c"
int main(int argc, char* argv[])
{
HRESULT hRslt;
IUnknown* pIUnknown = NULL;
// 初始化COM子系統
hRslt = CoInitialize(NULL);
/*
hRslt = CoGetClassObject(CLSID_ComArea,
CLSCTX_INPROC_SERVER,
NULL,
IID_IUnknown,
(VOID**)&pIUnknown);
if (FAILED(hRslt)) {
cerr << "Faile to get IUnknown interface.\n";
return 1;
}
// 得到IArea接口
IComArea* pIArea = NULL;
hRslt = pIUnknown->QueryInterface(IID_IComArea, (VOID**)&pIArea);
if (FAILED(hRslt)) {
cerr << "Faile to get IArea interface.\n";
return 1;
}
*/
// 直接查找接口——法二
hRslt = CoCreateInstance(CLSID_ComArea,
NULL,
CLSCTX_INPROC_SERVER,
IID_IUnknown,
(VOID**)&pIUnknown);
if (FAILED(hRslt)) {
cerr << "Faile to create COM object.\n";
return 1;
}
IComArea* pIArea = NULL;
hRslt = pIUnknown->QueryInterface(IID_IComArea, (VOID**)&pIArea);
if (FAILED(hRslt)) {
cerr << "Faile to get IComArea interface.\n";
return 1;
}
pIArea->AddRef();
// 調用方法求面積
TRIANGLE_INFO triangle;
double dArea = .0;
cout << "Input a, b, c of a triangle : ";
cin >> triangle.a >> triangle.b >> triangle.c;
pIArea->TriangleArea(&triangle, &dArea);
cout << "Area of the triangle : " << dArea << endl;
RECTANGLE_INFO rectangle;
cout << "Input width, height of a rectangle : ";
cin >> rectangle.w >> rectangle.h;
pIArea->RectangleArea(&rectangle, &dArea);
cout << "Area of the rectangle : " << dArea << endl;
CIRCLE_INFO circle;
cout << "Input radius of a circle :";
cin >> circle.r;
pIArea->CircleArea(&circle, &dArea);
cout << "Area of the circle : " << dArea << endl;
// 清除引用計數
pIUnknown->Release();
pIArea->Release();
// 關閉COM子系統
CoUninitialize();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -