casecodedll.cpp

来自「cashcode的相关测试代码」· C++ 代码 · 共 182 行

CPP
182
字号
// CaseCodeDll.cpp: implementation of the CCaseCodeDll class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "test.h"
#include "CaseCodeDll.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCaseCodeDll::CCaseCodeDll()
{
	m_hDLL = LoadLibrary("CashCode.dll");

	if (!m_hDLL) {
		MessageBox(NULL, "load dll error", "", MB_OK);
	}
}

CCaseCodeDll::~CCaseCodeDll()
{
	if (m_hDLL)
		FreeLibrary(m_hDLL);
}

void CCaseCodeDll::test() {
	if (m_hDLL) {
		typedef void (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "test");
		if (pFunc)
			pFunc();
	}
}

DWORD CCaseCodeDll::GetLastResponseLen()
{
	if (m_hDLL) {
		typedef DWORD (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_GetLastResponseLen");
		if (pFunc)
			return pFunc();
	}
}

unsigned char CCaseCodeDll::GetResponse(unsigned char &nMore)
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char&);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_GetResponse");
		if (pFunc)
			return pFunc(nMore);
	}
}

INT CCaseCodeDll::EnableB2BMode()
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_EnableB2BMode");
		if (pFunc)
			return pFunc();
	}
}

INT CCaseCodeDll::ReturnBill()
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_ReturnBill");
		if (pFunc)
			return pFunc();
	}
}

INT CCaseCodeDll::AcceptBill()
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_AcceptBill");
		if (pFunc)
			return pFunc();
	}
}

INT CCaseCodeDll::Poll()
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_Poll");
		if (pFunc)
			return pFunc();
	}
}

INT CCaseCodeDll::GetBillTable(unsigned char chBillTables[BILL_TYPES_LEN])
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char[BILL_TYPES_LEN]);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_GetBillTable");
		if (pFunc)
			return pFunc(chBillTables);
	}
}

INT CCaseCodeDll::SetSecurity(unsigned char chSecurity[SECURITY_LEN])
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char[SECURITY_LEN]);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_SetSecurity");
		if (pFunc)
			return pFunc(chSecurity);
	}
}

INT CCaseCodeDll::EnableBillTypes(unsigned char chBillTypes[BILL_TYPES_LEN])
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char[BILL_TYPES_LEN]);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_EnableBillTypes");
		if (pFunc)
			return pFunc(chBillTypes);
	}
}

INT CCaseCodeDll::GetIdentification(unsigned char PN[PN_LEN], unsigned char SN[SN_LEN], unsigned char AN[AN_LEN])
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char[PN_LEN], unsigned char[SN_LEN], unsigned char[AN_LEN]);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_GetIdentification");
		if (pFunc)
			return pFunc(PN, SN, AN);
	}
}

INT CCaseCodeDll::GetStatus(unsigned char chStatus[STATUS_LEN])
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (unsigned char[STATUS_LEN]);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_GetStatus");
		if (pFunc)
			return pFunc(chStatus);
	}
}

INT CCaseCodeDll::ConnectToDrv(INT nComPort, INT nBaud)
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) (INT, INT);
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_ConnectToDrv");
		if (pFunc)
			return pFunc(nComPort, nBaud);
	}
}

INT CCaseCodeDll::Reset()
{
	if (m_hDLL) {
		typedef INT (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_Reset");
		if (pFunc)
			return pFunc();
	}
}

void CCaseCodeDll::CloseConnection()
{
	if (m_hDLL) {
		typedef void (WINAPI *FUNC) ();
		FUNC pFunc = (FUNC)GetProcAddress(m_hDLL, "CC_CloseConnection");
		if (pFunc)
			pFunc();
	}
}

⌨️ 快捷键说明

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