⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 areatest.cpp

📁 面向软件工程的Visual C++网络程序开发
💻 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 + -