📄 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 + -