亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? package.cpp

?? 一個與銀行通訊的測試程序
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// package.cpp: implementation of the Cpackage class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "HmComm.h"
#include "package.h"


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

extern int WriteParseLog(char *FileName, int Line, char *fmt, ...);
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Cpackage::Cpackage()
{
	memset(cTranCode,0,9);
}

Cpackage::~Cpackage()
{

}

/*==================================================================================
//函數名稱: ClearPackStruct
//輸入參數: char *cRecvbuf: 返回的字符串
//輸出參數: PACKSTRUCT *packstruct:通信數據結構
//返    回: 通信數據結構的長度
//功    能: 數據轉換,將本公司自定義包轉換成銀行需要的數據包。
//開發人員: zhangl
//修改記錄: 1. 第一次編寫.
====================================================================================*/
int Cpackage::ExchangeSendData(PACKSTRUCT *packstruct, char *cSendbuf, char * cHoldmem)
{
	int nDatalen,jydm=0;
	int retVal;
	char tmpStr[80];

	retVal = 0;
    nDatalen = sizeof(PACKSTRUCT);
    

    memset(tmpStr,0x00,sizeof(tmpStr));
    memcpy(tmpStr,packstruct->m_Jydm,sizeof(packstruct->m_Jydm));
	alltrimSpace(tmpStr);

	WriteParseLog(__FILE__,__LINE__,"%s  , %s=[%s]","請求處理開始","交易代碼=[%s]",tmpStr);

	jydm = atoi(tmpStr);

	switch( jydm )
	{
			case 1001://密碼校驗請求
				retVal=Function_Mmjy( packstruct, cSendbuf );
				break;
			case 2001://50發卡驗證
			case 2002://51發卡
			case 2003://52換卡驗證
			case 2004://53換卡
				retVal=Function_KKHK( jydm, packstruct, cSendbuf );
				break;
				//儲蓄 國庫券信息  代收費信息 
				//多媒體客戶綜合  全國通
				//卡號 幣  種	儲  種	筆數號	查詢起始日期   */
			case 4011://儲蓄信息查詢
			case 4012://儲蓄信息查詢
			case 4013://儲蓄信息查詢
			case 4015://儲蓄信息查詢
			case 4016://儲蓄信息查詢
			case 4018://儲蓄信息查詢
			case 4019://儲蓄信息查詢
			case 4020://儲蓄信息查詢
				retVal=Function_Cxxxcx(jydm,packstruct, cSendbuf );
				break;
			case 4030://國庫券信息
				retVal=Function_CxGkq( packstruct, cSendbuf );
				break;
			case 4040://代收費信息
				retVal=Function_CxDsf( packstruct, cSendbuf );
				break;
			case 4050://綜合查詢
				retVal=Function_CxZhxx( packstruct, cSendbuf );
				break;
			case 4060://全國通查詢
				retVal=Function_CxQgt( packstruct, cSendbuf );
				break;
			case 4100://卡內轉帳1
				retVal=Function_Knzz( packstruct, cSendbuf );
				break;
			case 4102://卡內轉帳2
				retVal=Function_KnzzNext( packstruct, cSendbuf );
				break;
			case 4110://卡卡轉帳
				retVal=Function_Kkzz( packstruct, cSendbuf );
				break;
			
			default:
				break;

	}
	return retVal;

}
extern int WriteParsecLog(char *FileName, int Line, char *fmt, ...);

char *Cpackage::WriteContNum()
{
    /////讀取 流水號
	int iNum = 0;
	char cTmp[100];
	iNum = GetPrivateProfileInt("SERVER","CONTINUM",0,"..\\conf\\Config.ini");
	if(iNum >= 999)
		iNum = 0;
	iNum += 1;
	
	memset(cTmp,0x00,sizeof(cTmp));
	sprintf(cTmp,"%3d",iNum);
	WritePrivateProfileString("SERVER","CONTINUM",cTmp,"..\\conf\\Config.ini");
	memset(cTmp,0x00,sizeof(cTmp));
	sprintf(cTmp,"%3d%3d",iNum,iNum);
	return cTmp;
}
/*==================================================================================
//函數名稱: AppendRecord
//輸入參數: char *dbffile: 數據庫名稱
//          char *jydm: 交易代碼
//          PACKSTRUCT *packstruct: 通信數據結構
//          TDBF dbf: 數據庫類
//輸出參數: 無
//返    回: 無
//功    能: 追加記錄。
//開發人員: zhangl
//修改記錄: 1. 第一次編寫.
====================================================================================*/
void Cpackage::AppendRecord(char *dbffile, char *jydm, PACKSTRUCT *packstruct, TDBF dbf)
{
	int  datalen, recordlength, recordcount , offset, i ;
	char fileName[80], tempStr[80];

	memset( fileName, 0x00, sizeof(fileName) );
	//GetCurrentDirectory(80,tempStr);
	strcpy( fileName, "..\\conf\\dbffile.txt");

	memset(tempStr,0x00,sizeof(tempStr));
	GetPrivateProfileString(jydm,"total","temp.dbf",tempStr, 80, fileName);
	recordlength = atoi( tempStr );
	if(recordlength == 0)
		return;

	memset(tempStr,0x00,sizeof(tempStr));
	//packLen must is true!!!!!!!!!!!!!!! zhangl
	memcpy(tempStr, packstruct->m_DataLen,sizeof(packstruct->m_DataLen));
    //for test zhangl
	datalen = atoi(tempStr);
	    
	recordcount = datalen/recordlength;

	dbf.Open(dbffile, ReadWrite);
	offset = MAX_HEAD_LEN;
//	AfxMessageBox("Append");
    for(i = 0 ; i< recordcount ; i++)
	{
		memset(tempStr,0x00, sizeof(tempStr));
		strcpy(tempStr," ");
		memcpy(tempStr+1, packstruct->m_Data+i*recordlength, recordlength);
	
//		AfxMessageBox(tempStr);

		dbf.SetRecordBuffer(tempStr);
		offset = offset + recordlength;
		dbf.AppendRecord();
	}
	dbf.Close();
}

/*==================================================================================
//函數名稱: CreateDbfFile
//輸入參數: char *jydm: 交易代碼
//          char *dbffile: 數據庫名稱
//          TDBF dbf: 數據庫類
//輸出參數: 無
//返    回: 無
//功    能: 生成數據庫表。
//開發人員: zhangl
//修改記錄: 1. 第一次編寫.
====================================================================================*/
void Cpackage::CreateDbfFile(char *jydm, char *dbffile, TDBF dbf)
{
	char fileName[80];
	char tempStr[80];
	TDBFField  field[100];
	int total;
	int  fieldnumber, i;
	
	memset( dbffile, 0, sizeof(dbffile) );
	memset( fileName, 0, sizeof( fileName ) );
	GetCurrentDirectory(80,tempStr);
	strcpy( fileName, "..\\conf\\dbffile.txt");
	memset(tempStr,0x00,sizeof(tempStr));
	GetPrivateProfileString(jydm,"fileName","temp.dbf",tempStr, 80, fileName);
	//strcpy( dbffile,tempStr);
	sprintf( dbffile, "..\\dbf\\%s",tempStr);

	memset(tempStr,0x00,sizeof(tempStr));
	GetPrivateProfileString(jydm,"fieldnumber","1",tempStr, 80, fileName);
	fieldnumber = atoi(tempStr);
	memset(tempStr,0x00,sizeof(tempStr));
	GetPrivateProfileString(jydm,"total","1",tempStr, 80, fileName);
	total = atoi(tempStr);

	for (i = 0 ; i < fieldnumber; i++)
	{
		char Str[40];
		int j = 0;
		memset(Str,0x00,sizeof(Str));

		j = i + 1 ;
		sprintf(Str,"field%d", j );
		strcat(Str,".name");
		memset(tempStr, 0x00, sizeof(tempStr));
		GetPrivateProfileString(jydm,Str,"1",tempStr, 80, fileName);
		strcpy(field[i].Name,tempStr);

		memset(Str,0x00,sizeof(Str));
		sprintf(Str,"field%d", j );
		strcat(Str,".type");
		memset(tempStr, 0x00, sizeof(tempStr));
		GetPrivateProfileString(jydm,Str,"C",tempStr, 80, fileName);
		field[i].Type=tempStr[0]; 

		memset(Str,0x00,sizeof(Str));
		sprintf(Str,"field%d", j );
		strcat(Str,".width");
		memset(tempStr, 0x00, sizeof(tempStr));
		GetPrivateProfileString(jydm,Str,"10",tempStr, 80, fileName);
		field[i].Width = atoi( tempStr ); 

		memset(Str,0x00,sizeof(Str));
		sprintf(Str,"field%d", j );
		strcat( Str, ".dec" );
		memset(tempStr, 0x00, sizeof(tempStr));
		GetPrivateProfileString(jydm,Str,"0",tempStr, 80, fileName);
		field[i].Dec = atoi( tempStr ); 
	}
	dbf.New(dbffile,field,fieldnumber);
	dbf.Close();
}

/*==================================================================================
//函數名稱: ClearPackStruct
//輸入參數: PACKSTRUCT *packstruct: 通信數據結構
//輸出參數: 無
//返    回: 無
//功    能: 清空通信數據結構。
//開發人員: zhangl
//修改記錄: 1. 第一次編寫.
====================================================================================*/
void Cpackage::ClearPackStruct(int Errcode, PACKSTRUCT *packstruct)
{
	char tmpstr[10];
	int iLen=0;
	memset(tmpstr,0x00,sizeof(tmpstr));
	//memset(packstruct,0x00,sizeof(PACKSTRUCT));
	//sprintf(tmpstr,"%d",Errcode);
	memcpy(packstruct->m_Fhdm,"9000",sizeof(packstruct->m_Fhdm));
	
	memset(packstruct->m_Data,0x00,sizeof(packstruct->m_Data));
	strcpy(packstruct->m_Data, "通信故障");
	iLen = strlen(packstruct->m_Data);
	packstruct->m_Data[iLen] = 0x01;

}

/*==================================================================================
//函數名稱: ClearPackStruct
//輸入參數: char *cRecvbuf: 返回的字符串
//輸出參數: PACKSTRUCT *packstruct:通信數據結構
//返    回: 通信數據結構的長度
//功    能: 數據轉換,將銀行返回的數據包轉換成本公司自定義包。
//開發人員: zhangl
//修改記錄: 1. 第一次編寫.
====================================================================================*/
int Cpackage::ExchangeRecvData(PACKSTRUCT *packstruct, char *cRecvbuf, char * cHoldmem)
{
	int nDatalen = 0,retVal = 0;
	int nCode = 0;

	char tmp[800];//add zhangl for test
	//int iLen;//add zhangl for test

	memset(tmp,0x00,sizeof(tmp));
	memcpy(tmp,packstruct->m_Jydm,sizeof(packstruct->m_Jydm));
	alltrimSpace(tmp);
	nCode = atoi(tmp);

	switch( nCode )
	{
			case 1001://密碼校驗請求
				retVal=Function_Mmjy_ans( nCode, packstruct, cRecvbuf );
				break;
			case 2001://50發卡驗證
			case 2002://51發卡
			case 2003://52換卡驗證
			case 2004://53換卡
				retVal=Function_KKHK_ans( nCode, packstruct, cRecvbuf );
				break;
				//儲蓄 國庫券信息  代收費信息 
				//多媒體客戶綜合  全國通
			case 4011://儲蓄信息查詢
			case 4012://儲蓄信息查詢
			case 4013://儲蓄信息查詢
			case 4015://儲蓄信息查詢
			case 4016://儲蓄信息查詢
			case 4018://儲蓄信息查詢
			case 4019://儲蓄信息查詢
			case 4020://儲蓄信息查詢
				retVal=Function_Cxxxcx_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4030://國庫券信息
				retVal=Function_CxGkq_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4040://代收費信息
				retVal=Function_CxDsf_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4050://客戶綜合
				retVal=Function_CxZhxx_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4060://全國通
				retVal=Function_CxQgt_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4100://卡內轉帳
				retVal=Function_Knzz_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4102://卡內轉帳
				retVal=Function_KnzzNext_ans( nCode, packstruct, cRecvbuf );
				break;
			case 4110://卡卡轉帳
				retVal=Function_Kkzz_ans( nCode, packstruct, cRecvbuf );
				break;
			default:
				break;

	}
		bEndFlag = TRUE;
	return nDatalen;
}


	


//儲蓄信息信息查詢請求
int Cpackage::Function_Cxxxcx(int jydm, PACKSTRUCT *packstruct, char *cSendbuf)
{
	/*
	card_no 
	幣  種
	儲  種
	筆數號
	查詢起始日期YYYYMMDD
    */
	char	tmpStr[ 200 ], tmpstr[ 200 ];
	//	char Buff[ 20 ], dateBuf[ 20 ];
	int iLength,RetValue=0;
	information_request Str_info_request;
    
	memset( &Str_info_request, 0x30, sizeof(information_request) );
	memset( tmpStr, 0x00, sizeof(tmpStr) );
	memset( tmpstr, 0x00, sizeof(tmpstr) );
	iLength = 0; 
 	//信息查詢請求
	//02 - 信息查詢 jylx[2];
	memcpy(Str_info_request.jylx,"02",sizeof(Str_info_request.jylx));
    

	//多媒體查詢 設備編號 3
	memset(tmpStr,0x00,sizeof(tmpStr));
    memcpy(tmpStr,packstruct->m_Zdh,sizeof(packstruct->m_Zdh));
	alltrimSpace(tmpStr);
	iLength = strlen(tmpStr);
	memcpy(Str_info_request.pprno,tmpStr,sizeof(Str_info_request.pprno));
	WriteParseLog(__FILE__,__LINE__,"%s  , %s=[%s]","信息查詢請求模塊","設備編號",tmpStr);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合97婷婷| 不卡av在线免费观看| 国产成人亚洲综合a∨婷婷图片| 国产一区二区福利| av不卡一区二区三区| 欧美精品777| 久久久精品日韩欧美| 一区二区三区.www| 久久99久久久久久久久久久| 成人一区二区三区中文字幕| 欧洲国内综合视频| 久久色.com| 一区二区三区加勒比av| 久久99久久99| 91麻豆产精品久久久久久| 欧美一级片在线看| 国产精品对白交换视频| 日本视频免费一区| 99精品视频免费在线观看| 日韩女优制服丝袜电影| 中文字幕一区视频| 奇米一区二区三区| 色综合av在线| 欧美精品一区二区三区很污很色的 | 国产亚洲成aⅴ人片在线观看| 亚洲欧美视频一区| 精品一区二区三区免费| 91久久精品网| 久久久不卡网国产精品二区| 亚洲成人av资源| 不卡的电影网站| 日韩欧美在线综合网| 亚洲色图清纯唯美| 精品一区二区免费看| 欧美丝袜第三区| 国产精品每日更新在线播放网址| 天堂一区二区在线| 91视频在线看| 久久久久久免费网| 美女视频黄久久| 欧美自拍偷拍一区| 国产精品白丝在线| 激情综合网av| 91精品国产aⅴ一区二区| 中文字幕人成不卡一区| 国产成人在线视频免费播放| 日韩视频一区在线观看| 香蕉影视欧美成人| 91豆麻精品91久久久久久| 国产精品区一区二区三区| 九色porny丨国产精品| 欧美日韩色一区| 亚洲色图欧美在线| 粉嫩av一区二区三区在线播放 | 狠狠色综合播放一区二区| 欧美三级在线播放| 一区二区三区日韩在线观看| 北条麻妃一区二区三区| 久久久99精品免费观看不卡| 秋霞影院一区二区| 欧美日韩精品一区视频| 亚洲精品乱码久久久久久日本蜜臀| 成人免费视频app| 国产日产亚洲精品系列| 国产在线观看免费一区| 日韩一区二区在线免费观看| 亚洲国产精品人人做人人爽| 在线这里只有精品| 亚洲在线成人精品| 在线亚洲免费视频| 一区二区高清免费观看影视大全 | 亚洲三级免费观看| av激情综合网| 亚洲人成亚洲人成在线观看图片| 97se亚洲国产综合自在线观| 国产精品福利影院| 99精品视频一区二区| 亚洲欧洲日韩av| 91啪亚洲精品| 一区二区三区小说| 欧美伊人精品成人久久综合97| 亚洲特级片在线| 色婷婷综合久色| 亚洲成av人片在线| 3d动漫精品啪啪1区2区免费| 日韩高清电影一区| 337p日本欧洲亚洲大胆色噜噜| 精品一区二区三区在线播放| 久久久蜜桃精品| 国产91精品精华液一区二区三区 | 成人一区二区三区中文字幕| 国产精品污www在线观看| 成人黄色一级视频| 一区二区国产视频| 欧美日韩中文国产| 另类欧美日韩国产在线| 久久免费看少妇高潮| 成人性色生活片免费看爆迷你毛片| 亚洲色图都市小说| 欧美视频三区在线播放| 日韩av电影免费观看高清完整版 | 国产在线看一区| 中文字幕第一页久久| 91亚洲午夜精品久久久久久| 一区二区国产盗摄色噜噜| 欧美精品日韩一本| 国产精品亚洲一区二区三区妖精| 国产精品久久久久久久久搜平片 | 亚洲超碰精品一区二区| 欧美电影免费观看高清完整版在线| 国产精品一区免费视频| 亚洲天堂免费看| 6080国产精品一区二区| 国产suv一区二区三区88区| 亚洲精品免费看| 日韩欧美国产综合一区| 不卡的av电影| 日韩电影在线观看一区| 国产丝袜美腿一区二区三区| 色婷婷久久99综合精品jk白丝| 日本午夜精品视频在线观看| 国产精品女同互慰在线看| 欧美日韩小视频| 国产一区二区三区观看| 亚洲乱码国产乱码精品精小说| 欧美一区国产二区| 99久久综合色| 蜜桃久久久久久久| 亚洲另类色综合网站| 日韩欧美亚洲一区二区| 色综合久久综合网欧美综合网| 另类小说图片综合网| 一区二区三区91| 国产视频一区二区在线| 欧美精品国产精品| 99亚偷拍自图区亚洲| 久久精品国产999大香线蕉| 亚洲免费看黄网站| 久久久精品国产免大香伊| 欧美性欧美巨大黑白大战| 国产成人8x视频一区二区| 人妖欧美一区二区| 亚洲综合色在线| 国产精品午夜电影| 亚洲精品在线三区| 在线免费观看不卡av| 国产91精品在线观看| 美女视频网站黄色亚洲| 亚洲国产乱码最新视频| 国产精品蜜臀av| 久久综合色鬼综合色| 欧美精品久久久久久久久老牛影院| av日韩在线网站| 在线视频你懂得一区二区三区| 韩国三级在线一区| 肉丝袜脚交视频一区二区| 亚洲天堂精品在线观看| 国产肉丝袜一区二区| 欧美成人在线直播| 欧美日韩一区二区三区四区五区 | 亚洲精品成人精品456| 国产精品美日韩| 国产日韩精品一区二区三区在线| 日韩精品一区在线观看| 欧美日韩国产综合视频在线观看| 99re热这里只有精品视频| 国产精品一区二区x88av| 日韩国产一二三区| 丝袜美腿一区二区三区| 亚洲一二三区在线观看| 一区二区三区中文在线观看| 中文字幕乱码亚洲精品一区| 精品国产91亚洲一区二区三区婷婷| 欧美精品在欧美一区二区少妇| 欧美在线观看视频一区二区| 99久久精品国产一区| 成人高清视频免费观看| 成人一级黄色片| 粉嫩嫩av羞羞动漫久久久 | 国产精品人人做人人爽人人添| 久久久99久久| 久久久九九九九| 久久久久久久综合| 国产午夜精品一区二区三区嫩草 | 成人综合婷婷国产精品久久免费| 国产在线一区观看| 国产麻豆欧美日韩一区| 国产另类ts人妖一区二区| 国产一区二区三区| 国产成人免费高清| thepron国产精品| 色哟哟欧美精品| 欧美日韩一区国产| 91精品国产免费| 欧美tickling挠脚心丨vk| 2023国产精品| 国产精品理伦片| 亚洲女同一区二区| 亚洲福利一区二区三区| 午夜精品123|