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

📄 dlgexchange.cpp

📁 本程序是利用com原理开发的一个ATM机与银行之间的分布式应用
💻 CPP
字号:
// DlgExchange.cpp : implementation file
//

#include "stdafx.h"
#include "ATM.h"
#include "DlgExchange.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


extern BOOL     g_ExchangeType;
extern CString  g_AccountID;
extern float    g_CurrentFund;
/////////////////////////////////////////////////////////////////////////////
// CDlgExchange dialog


CDlgExchange::CDlgExchange(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgExchange::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgExchange)
	m_Money = _T("");
	//}}AFX_DATA_INIT
}


void CDlgExchange::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgExchange)
	DDX_Control(pDX, IDC_Type, m_ExchangeType);
	DDX_Text(pDX, IDC_Account, m_Money);
	DDV_MaxChars(pDX, m_Money, 5);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgExchange, CDialog)
	//{{AFX_MSG_MAP(CDlgExchange)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgExchange message handlers

BOOL CDlgExchange::OnInitDialog() 
{
	CDialog::OnInitDialog();
	if(g_ExchangeType)
		m_ExchangeType.SetWindowText("存钱");
	else
		m_ExchangeType.SetWindowText("取钱");

	UpdateData(FALSE);
	return TRUE;  
}


void CDlgExchange::OnOK() 
{
	UpdateData(TRUE);

	HRESULT	  hr;
	IAccount *IAccount;                 //指向接口的指针
	BSTR  AccountID = A2BSTR(g_AccountID);
	float money = atof(m_Money);
	float currentFond = 0.0 ;

	COSERVERINFO srvinfo={0,L"192.168.0.2",NULL,0};
	MULTI_QI MultiQI = {&IID_IUnknown,NULL,NOERROR};
	hr=CoCreateInstanceEx(CLSID_Account, NULL, CLSCTX_REMOTE_SERVER,
		                  &srvinfo,  1,   &MultiQI); 
	if(hr!=0)
		AfxMessageBox("COM组件创建失败!");
	else
	{
		if(g_ExchangeType)   //存钱
	       hr = IAccount->Deposit(AccountID,money,&currentFond);    //调用Deposit
		else
		{
		   if(g_CurrentFund<money)         //若余额少于要取的钱,报错
			   AfxMessageBox("余额不足!!");
		   else
		       hr = IAccount->WithDraw(AccountID,money,&currentFond);//调用WithDraw
		}
		hr = IAccount->Release();                                   //释放接口	
	}
	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -