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

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

?? ppq.cpp

?? a dsp dll and sample
?? CPP
字號:
// PPQ.cpp: implementation of the PPQ class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PPQ.h"
//#include "RADIX64.h"

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

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

PPQ::PPQ()
{
	this->m_lpbuff	=NULL;
}

PPQ::~PPQ()
{
	if(this->m_lpbuff!=NULL)
		delete []this->m_lpbuff;
}

/******************************************************************
對象序列化
bool DSPAct::Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp)
	byClassLevels	--	類的層次
	byAttrNo		--	屬性序號
	dsp				--	包含序列化或反序化的DSP包
	返回:	false	--	表示當前對象的屬性還沒有還原完;
			true	--	表示當前對象的屬性已經還原完啦
			如果序列化函數后,設置的緩沖區為NULL,則表示出錯。
******************************************************************/
bool PPQ::Serialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp)
{
	if(byClassLevels>1)
		return DSPACT::Serialize(byClassLevels-1,byAttrNo,dsp);
	else
	{
		switch(byAttrNo)
		{
			case 1:						//序列化第1個屬性
				dsp.Write(this->m_bBOOL);
				return false;
			case 2:						//序列化第2個屬性
				dsp.Write(this->m_bBool);
				return false;
			case 3:
				dsp.Write((int)this->m_dwValue);
				return false;
			case 4:
				dsp.Write(this->m_iValue);
				return false;
			case 5:
				dsp.Write(this->m_sValue);
				return false;
			case 6:
				dsp.Write(this->m_wValue);
				return false;
			case 7:
				dsp.Write(this->m_cValue);
				return false;
			case 8:
				dsp.Write(this->m_byValue);
				return false;
			case 9:
				dsp.Write(this->m_hgf,true,true);
				return false;
			case 10:
				dsp.Write(this->m_str);
				return false;
			case 11:						//序列化最后一個屬性
				dsp.Write(this->m_chBuff,READ_FILE_SIZE,false);
		}
	}

	return true;
}

/*******************************************************************
對象反序列化
bool DSPAct::UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen)
	byClassLevels	--	類的層次
	byAttrNo		--	屬性序號
	dsp				--	包含序列化或反序化的DSP包
	dwLen			--	屬性的長度
	返回:	false	--	表示當前對象的屬性還沒有還原完;
			true	--	表示當前對象的屬性已經還原完啦
		如果反序列化函數返回時,設定的緩沖區為NULL或緩沖區的尺寸小于應該設定的尺寸,則表示出錯。
******************************************************************/
bool PPQ::UnSerialize(BYTE byClassLevels,BYTE byAttrNo,DSP::_DSPPACKET &dsp,DWORD dwLen)
{
	//反序列化對象
	if(byClassLevels>1)
		return DSPACT::UnSerialize(byClassLevels-1,byAttrNo,dsp,dwLen);
	else
	{
		switch(byAttrNo)
		{
			case 1:						//得到第1個屬性
				dsp.Read(this->m_bBOOL);
				return false;
			case 2:						//得到第2個屬性
				dsp.Read(this->m_bBool);
				return false;
			case 3:
				dsp.Read(this->m_dwValue);
				return false;
			case 4:
				dsp.Read(this->m_iValue);
				return false;
			case 5:
				dsp.Read(this->m_sValue);
				return false;
			case 6:
				dsp.Read(this->m_wValue);
				return false;
			case 7:
				dsp.Read(this->m_cValue);
				return false;
			case 8:
				dsp.Read(this->m_byValue);
				return false;
			case 9:
				dsp.Read(this->m_hgf);
				return false;
			case 10:
				dsp.Read(this->m_str,dwLen);
				return false;
			case 11:						//序列化最后一個屬性
				dsp.Read(this->m_chBuff,dwLen);
		}
	}

	return true;
}

/*******************************************************************
接收屬性的一個段
bool DSPACT::AttrSectRecv(BYTE byClassLevels,BYTE byAttrNo,const char* const lpBuff,DWORD dwLen,bool bLast)
	byClassLevels	--	類的層次
	byAttrNo		--	屬性序號
	lpBuff			--	保存接收值的緩沖區
	dwLen			--	緩沖區的長度
	bLast			--	表示是否接收到的最后一個段;
						true時,表示這次接收到的數據是最后一段數據;
						false時,表示這次接收到的數據不是最后一段數據,后面還有數據。
	返回:	false時,表示失敗;true時,表示正常
******************************************************************/
bool PPQ::AttrSectRecv(BYTE byClassLevels,BYTE byAttrNo,const char* const lpBuff,DWORD dwLen,bool bLast)
{
	if(byClassLevels>1)
		return DSPACT::AttrSectRecv(byClassLevels,byAttrNo,lpBuff,dwLen,bLast);
	else
	{
		switch(byAttrNo)
		{
			case 11:
				if(ofs.is_open()==0)
				{
					//如果文件沒有被打開,則打開文件
					ofs.open("ip2.txt",ios::out|ios::binary);
				}
				ofs.write(lpBuff,dwLen);
				if(bLast)
				{
					ofs.flush();
					ofs.close();
				}
				break;
		}
	}

	return true;
}

/*******************************************************************
傳送屬性的一個段
bool DSPACT::AttrSectSend(BYTE byClassLevels,BYTE byAttrNo,char** const lpBuff,DWORD& dwLen,bool& bContinue)
	byClassLevels	--	類的層次
	byAttrNo		--	屬性序號
	lpBuff			--	保存傳送緩沖區的首址的變量的指針
	wLen			--	保存緩沖區的長度的變量的指針
	bContinue		--	表示是否是傳送的最后一個段的變量的地址;
						true時,表示這次傳送的數據是最后一段數據;
						false時,表示這次傳送的數據不是最后一段數據,后面還有數據。
	返回:	false	--	表示失敗;
			true	--	表示正常
******************************************************************/
bool PPQ::AttrSectSend(BYTE byClassLevels,BYTE byAttrNo,char** const lpBuff,DWORD& dwLen,bool& bContinue)
{
	if(byClassLevels>1)
		return DSPACT::AttrSectSend(byClassLevels,byAttrNo,lpBuff,dwLen,bContinue);
	else
	{
		switch(byAttrNo)
		{
			case 11:
				if(ifs.is_open()==0)
				{
					//如果文件沒有被打開,則打開文件
					ifs.open("ip1.txt",ios::in|ios::binary);

					//保存接收的長度
					dwLen	=READ_FILE_SIZE;

					//保存接收的緩沖區首址
					*lpBuff	=this->m_chBuff;
				}
				ifs.read(*lpBuff,dwLen);
				if(ifs.eof())
				{
					//如果文件已經結束
					//得到文件的大小
					int size	=ifs.tellg();

					//得到最后讀取的文件尺寸,設定最后接收的字節數
					dwLen		=size%dwLen;

					//設定不需要再繼續接收
					bContinue	=false;

					//關閉文件
					ifs.close();
				}
				break;
		}
	}

	return true;
}

/******************************************************************
壓縮
bool DSPACT::Compress(char** const lpBuff,DWORD& dwLen)
	lpBuff	--	在調用時,指向要壓縮的數據緩沖區的指針,壓縮后指向壓縮數據的緩沖區的首址
	dwLen	--	在調用時,為要壓縮的數據的字節個數,壓縮后為壓縮后的數據的字節數
		返回:true--壓縮程序有效;false--壓縮程序無效;
			當壓縮有效時,必需修改lpBuff為保存壓縮后數據的緩沖區的指針,
			dwLen地址內保存為壓縮后的數據的長度

  			如果設定緩沖區為NULL,則表示壓縮程序失敗。
******************************************************************/
/*bool PPQ::Compress(char** const lpBuff,DWORD& dwLen)
{
	RADIX64::_CODER	coder;
	int size	=coder.GetEncodeLen(dwLen);
	if(this->m_lpbuff!=NULL)
		delete []this->m_lpbuff;
	this->m_lpbuff	=new char[size];
	coder.Encode(*lpBuff,dwLen,this->m_lpbuff);
	*lpBuff	=this->m_lpbuff;
	dwLen	=size;
	return true;
//	return false;
};
*/
/******************************************************************
解壓縮
bool DSPACT::UnCompress(char** const lpBuff,DWORD dwLen,char* lpUnBuff,WORD& wUnLen,bool bStart)
	lpBuff	--	bStart==false時,需要將接收被壓縮的數據緩沖區的首址保存在該地址中;
				bStart==true時,保存被壓縮的數據緩沖區的首址
	dwLen	--	被壓縮數據的緩沖區的長度
	lpUnBuff--	bStart==true時,接收解壓縮數據的緩沖區的首址
	dwUnLen	--	bStart==true時,接收解壓縮數據的緩沖區的長度,在解壓縮完成后,保存為解壓縮數據的長度
	bStart	--	true,表示可以開始進行解壓縮數據;
				false,表示該次調用只是指定填充數據的緩沖區,緩沖區的長度不能小于dwLen;
		返回:true	--解壓縮程序有效;
			 false	--解壓縮程序無效
			如果設定緩沖區為NULL,則表示解壓縮程序失敗。
******************************************************************/
/*bool PPQ::UnCompress(char** const lpBuff,DWORD dwLen,char* lpUnBuff,WORD& wUnLen,bool bStart)
{
	if(bStart)
	{
		//解壓縮程序
		RADIX64::_CODER	coder;
		wUnLen	=coder.GetDecodeLen(dwLen,*lpBuff);
		coder.Decode(*lpBuff,dwLen,lpUnBuff);
	}
	else
	{
		//設定解壓縮程序的接收壓縮數據的緩沖區的地址
		if(this->m_lpbuff!=NULL)
			delete []this->m_lpbuff;
		this->m_lpbuff	=new char[dwLen];
		*lpBuff	=this->m_lpbuff;
	}
	return true;
//	return false;
};
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大度的电影原声| 国产精品久久免费看| wwwwxxxxx欧美| 亚洲欧美区自拍先锋| 九九久久精品视频| jizz一区二区| 国产视频亚洲色图| 美女尤物国产一区| 欧美视频在线观看一区| 国产精品欧美一区二区三区| 美国毛片一区二区| 欧美喷潮久久久xxxxx| 午夜精彩视频在线观看不卡| 国产成人综合网| 日韩精品在线一区| 日韩中文字幕一区二区三区| 色一区在线观看| 国产精品的网站| 国产剧情一区在线| 日韩免费看网站| 午夜精品久久久久久久99水蜜桃 | 日韩欧美一区二区不卡| 亚洲天天做日日做天天谢日日欢| 久久国产精品色| 日韩一区和二区| 午夜精品久久久久久久久久| 欧美性xxxxxxxx| 亚洲色图.com| 国产一区二区在线观看免费| 91麻豆精品国产综合久久久久久| 亚洲自拍另类综合| 色女孩综合影院| 亚洲一区二区四区蜜桃| 在线观看91精品国产入口| 亚洲乱码日产精品bd| 色哟哟日韩精品| 午夜精品久久久久久久久久久| 欧美亚一区二区| 偷窥少妇高潮呻吟av久久免费| 欧美久久一二三四区| 日韩精品三区四区| 26uuuu精品一区二区| 国产在线观看一区二区 | 欧美日韩一本到| 日本不卡一区二区三区高清视频| 日韩欧美国产不卡| 国产一区二区日韩精品| 久久精品日产第一区二区三区高清版| 国产在线麻豆精品观看| 国产午夜亚洲精品理论片色戒| 国产电影一区二区三区| 17c精品麻豆一区二区免费| 91麻豆产精品久久久久久| 亚洲午夜久久久| 亚洲精品在线免费播放| bt欧美亚洲午夜电影天堂| 亚洲欧美日韩国产手机在线| 欧美日韩国产欧美日美国产精品| 蜜桃视频一区二区三区在线观看| 欧美精品一区二区在线播放| 成人免费视频播放| 亚洲成人免费视频| 亚洲午夜视频在线观看| 日韩欧美在线观看一区二区三区| 国产精品一区在线| 亚洲一区在线观看免费 | 亚洲美女精品一区| 日韩一区二区精品| 成人国产精品免费网站| 亚洲福利视频一区二区| 国产色婷婷亚洲99精品小说| 91麻豆国产香蕉久久精品| 久久精品国产免费看久久精品| 欧美经典一区二区| 欧美另类一区二区三区| 国产98色在线|日韩| 亚洲高清免费视频| 国产精品久久毛片av大全日韩| 不卡一二三区首页| 亚洲成人动漫一区| 中文字幕一区日韩精品欧美| 欧美一区二区免费| 欧美性xxxxxx少妇| 99这里只有久久精品视频| 免费高清在线视频一区·| 亚洲理论在线观看| 国产精品免费观看视频| 精品国产乱码91久久久久久网站| 欧美三区在线观看| 色综合久久综合网欧美综合网| 国产在线一区二区| 久久国产婷婷国产香蕉| 日韩av网站在线观看| 亚洲精品国久久99热| 国产精品视频第一区| 26uuu国产一区二区三区| 日韩一区二区三区av| 在线观看网站黄不卡| 99re成人在线| 中文字幕乱码久久午夜不卡| 91免费国产在线| 国产精品成人一区二区三区夜夜夜| 久久国产精品色| 欧美视频在线一区| 亚洲女女做受ⅹxx高潮| 欧美午夜精品久久久久久孕妇| 欧美精品乱人伦久久久久久| 91麻豆文化传媒在线观看| 亚洲一区二区精品视频| 成人夜色视频网站在线观看| 夜夜精品浪潮av一区二区三区| 精品电影一区二区三区| 678五月天丁香亚洲综合网| 99国产精品久久久久久久久久久| 国产激情一区二区三区| 久久精品国产免费看久久精品| 免费不卡在线视频| 青青青伊人色综合久久| 日本va欧美va精品发布| 麻豆成人久久精品二区三区红| 午夜欧美电影在线观看| 天堂va蜜桃一区二区三区漫画版| 亚洲国产精品久久久久秋霞影院| 精品免费日韩av| 国产嫩草影院久久久久| 国产精品护士白丝一区av| 中文字幕中文乱码欧美一区二区| 国产自产2019最新不卡| av中文字幕不卡| 日韩欧美国产一二三区| 亚洲精品v日韩精品| 午夜不卡av在线| 亚洲成a人在线观看| 麻豆国产精品官网| 国产999精品久久久久久绿帽| 91网上在线视频| 日韩欧美123| 久久国产精品第一页| 91老司机福利 在线| 久久蜜桃av一区二区天堂 | 极品美女销魂一区二区三区| 色婷婷久久综合| 国产精品动漫网站| 成人av资源在线| 国产精品女同互慰在线看| 96av麻豆蜜桃一区二区| 艳妇臀荡乳欲伦亚洲一区| 日韩欧美国产不卡| 成人app软件下载大全免费| 日韩精品自拍偷拍| 国v精品久久久网| 成人欧美一区二区三区| 在线观看一区二区视频| 亚洲免费资源在线播放| 欧美裸体一区二区三区| 亚洲国产精品二十页| 亚洲在线免费播放| 97国产精品videossex| 国产精品久久二区二区| 岛国av在线一区| 中文av字幕一区| 99久久婷婷国产精品综合| 国产精品欧美久久久久一区二区| 国产成人在线视频免费播放| 久久久精品国产免大香伊 | 久久免费的精品国产v∧| 久久精品国产精品青草| 久久精品欧美日韩精品| 成人国产精品免费观看视频| 亚洲欧美日韩国产综合在线| 成人h精品动漫一区二区三区| 中文字幕av不卡| 色狠狠色狠狠综合| 免费成人在线网站| 国产日韩欧美精品电影三级在线| 懂色av中文一区二区三区 | 欧美激情一区二区三区四区| 欧美一区二区三区啪啪| 九九**精品视频免费播放| 久久久久久久精| 国产一级精品在线| 久久九九国产精品| 盗摄精品av一区二区三区| 欧美一区三区四区| 亚洲成人第一页| 91蜜桃在线免费视频| 亚洲午夜av在线| 91精品欧美久久久久久动漫| 91麻豆精品久久久久蜜臀| 国产精品你懂的| 国产精一区二区三区| 欧美日韩中字一区| 亚洲欧洲精品天堂一级| 老司机精品视频线观看86| 欧美人妇做爰xxxⅹ性高电影| 国产欧美日韩另类一区| 日韩欧美一区在线观看| 欧美在线短视频| 久久精品国产第一区二区三区| 91浏览器在线视频|