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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? hexparser.h

?? 上位機軟件 for avricp 根據(jù)功能設(shè)定熔絲
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************
*
* 由 Atmel Corporation 的 AVR911 改編
*
* File              : HEXParser.hpp
* Compiler          : Microsoft Visual C++ 6.0 
* Date              : $Date: Sunday, January 20, 2008 
*
* Support mail      : helloshi@163.com
*
* Target platform   : Win32
*
* Description       : 一個簡單的英特爾 HEX 格式文件 讀/寫.
*
* 
****************************************************************************/
#ifndef HEXPARSER_HPP
#define HEXPARSER_HPP

#pragma warning(disable: 4018)
#include <assert.h>
#include <stdio.h>
#include <windows.h>

/* 內(nèi)部用于管理 HEX 的記錄 */
typedef struct _HEXRecord // Intel HEX 文件記錄
{
	unsigned char length; // 記錄長度
	unsigned long offset; // 記錄數(shù)據(jù)偏移地址
	unsigned char type;   // 記錄數(shù)據(jù)類型
	unsigned char * data; // 記錄數(shù)據(jù).
} HEXRecord;


class HEXFile
{
protected:
	volatile HANDLE _handleFile;	// 文件句柄
	unsigned char * data ;			// 數(shù)據(jù)指針.
	long start, end;				// 緩沖區(qū)有用數(shù)據(jù)起始位置和結(jié)束位置
	long size;						// 數(shù)據(jù)緩沖區(qū)長度.
	/* 字符串轉(zhuǎn)換為十六進制數(shù),長整型 */
	long convertHex( CString  txt )
	{
		long result = 0;
		long digit;
		long i;
		
		if( txt.GetLength() == 0 )
		{
			AfxMessageBox( "不能轉(zhuǎn)換0長度的hex字符串至數(shù)值!" );
			return result;
		}
		if( txt.GetLength() > 8 )
		{
			AfxMessageBox( "轉(zhuǎn)換溢出! 字符太多." );
			return result;
		}
		char t;
		for( i = 0; i < txt.GetLength(); i++ )
		{
			/* 轉(zhuǎn)換為十六進制數(shù) */
			t=txt.GetAt(i);
			if( txt.GetAt(i) >= '0' && txt.GetAt(i) <= '9' )
				digit = txt.GetAt(i) - '0';
			else if( txt.GetAt(i) >= 'a' && txt.GetAt(i) <= 'f' )
				digit = txt.GetAt(i) - 'a' + 10;
			else if( txt.GetAt(i) >= 'A' && txt.GetAt(i) <= 'F' )
				digit = txt.GetAt(i) - 'A' + 10;
			else{
				AfxMessageBox( "發(fā)現(xiàn)無效的十六進制字符!" );
				return result;
			}
			
			/* 結(jié)果至少4位有效 */
			result = (result << 4) | digit;
		}
		
		return result;
	}
	/* 長整型十六進制數(shù)轉(zhuǎn)換為字符串 */
	CString convertLong( long num, long radix = 10 )
	{
		char buf[18];
		CString res;
		
		itoa( num, buf, radix );
		res = buf;
		return res;
	}
	//文件的一行轉(zhuǎn)換為一個記錄
	BOOL parseRecord( CString hexLine, HEXRecord * recp )
	{
		unsigned char checksum;
		long recordPos; // 記錄內(nèi)數(shù)據(jù)位置
		
		if( hexLine.GetLength() < 11 ) // 至少11個字符.
		{
			AfxMessageBox( "Wrong HEX file format, missing fields! " );
			return false;
		}
		/* 檢查格式 */
		if( hexLine[0] != ':' ) // 必須冒號開頭.
		{
			AfxMessageBox( "錯誤的 HEX 文件格式, 不是冒號開頭! ");
			return false;
		}
		/* 分析 長度, 位置偏移 和 類型 */
		recp->length = (unsigned char)convertHex( hexLine.Mid( 1, 2 ) );
		recp->offset = convertHex( hexLine.Mid( 3, 4 ) );
		recp->type = (unsigned char)convertHex( hexLine.Mid( 7, 2 ) );
		
		/* 檢查記錄長度 */
		if( hexLine.GetLength() < (11+recp->length*2) )
		{
			AfxMessageBox( "錯誤的 HEX 文件格式, 數(shù)據(jù)不完整! ");
			return false;
		}
		/* 處理校驗和 */
		checksum = recp->length;
		checksum += (unsigned char) ((recp->offset >> 8) & 0xff);
		checksum += (unsigned char) (recp->offset & 0xff);
		checksum += recp->type;
		
		/* 分析數(shù)據(jù)區(qū) */
		if( recp->length )
		{
			recp->data = new unsigned char[ recp->length ];
			
			/* 讀數(shù)據(jù)至記錄 */
			for( recordPos = 0; recordPos < recp->length; recordPos++ )
			{
				recp->data[ recordPos ] = (unsigned char)convertHex( hexLine.Mid( 9 + recordPos*2, 2 ) );
				checksum += recp->data[ recordPos ];
			}
		}
		
		/* 正確的校驗? */
		checksum += (unsigned char)convertHex( hexLine.Mid( 9 + recp->length*2, 2 ) );
		if( checksum != 0 )
		{
			AfxMessageBox( "HEX 記錄校驗和錯誤! " );
			return false;
		}
		return true;
	}
	/* 寫一個記錄 */
	bool writeRecord( HEXRecord * recp )
	{
		if(_handleFile==INVALID_HANDLE_VALUE)
		{
			AfxMessageBox( "文件錯誤! " );
			return false;
		}
		DWORD nNumberOfBytesToWrite;
		LPDWORD lpNumberOfBytesWritten=&nNumberOfBytesToWrite;
		unsigned char checksum;
		long recordPos;		// 記錄內(nèi)數(shù)據(jù)位置
		
		/* 計算校驗和 */
		checksum = recp->length;
		checksum += (unsigned char) ((recp->offset >> 8) & 0xff);
		checksum += (unsigned char) (recp->offset & 0xff);
		checksum += recp->type;
		
		/* 寫記錄頭 */
		char str[100];
		sprintf(str,":%02X%04X%02X",(long) recp->length,(long) recp->offset,(long) recp->type);
		nNumberOfBytesToWrite=strlen(str);
		if(WriteFile(_handleFile,str,nNumberOfBytesToWrite,lpNumberOfBytesWritten,NULL)==NULL)
			return false;
		
		/* 寫記錄數(shù)據(jù) */
		for( recordPos = 0; recordPos < recp->length; recordPos++ )
		{
			checksum += recp->data[ recordPos ]; // Further checksum calculation
			sprintf(str,"%02X",(long) recp->data[ recordPos ]);
			nNumberOfBytesToWrite=strlen(str);
			if(WriteFile(_handleFile,str,nNumberOfBytesToWrite,lpNumberOfBytesWritten,NULL)==NULL)
				return false;
		}
		
		/* 寫校驗和 */
		checksum = 0 - checksum; // Final checksum preparation
		sprintf(str,"%02X",checksum);
		nNumberOfBytesToWrite=strlen(str);
		if(WriteFile(_handleFile,str,nNumberOfBytesToWrite,lpNumberOfBytesWritten,NULL)==NULL)
			return false;
		strcpy(str,"\r\n");
		nNumberOfBytesToWrite=2;
		if(WriteFile(_handleFile,str,nNumberOfBytesToWrite,lpNumberOfBytesWritten,NULL)==NULL)
			return false;
		return true;
		
	}
	
public:
	/* 結(jié)構(gòu) */
	HEXFile()
	{
		size = 0;
	}
	
	/* 析構(gòu) */
	~HEXFile()
	{
		//if( data ) delete data;
		closeFile();
	}
	
	void setHEXFile( long buffersize, long value = 0xff )
	{
		//if( data ) {delete [] data;} //???為什么執(zhí)行有錯誤???
		if( buffersize <= 0 )
			AfxMessageBox( "Cannot have zero-size HEX buffer!" );
		
		data = new unsigned char[ buffersize ];
		
		if( !data )
			AfxMessageBox( "Memory allocation failed for HEX-line-buffer!" );
		
		size = buffersize;
		
		clearAll( value );
	}
	
	bool fileExists( CString filename )
	{
		/* 試圖打開文件 */
		HANDLE f=CreateFile(filename,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
		if(f==INVALID_HANDLE_VALUE)
		{
			return false;
		} 
		else {
			CloseHandle(f);
			return true;
		}
	}
	//打開文件讀
	bool openFileRead( CString filename )
	{
		closeFile();
		_handleFile=CreateFile(filename,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
		if(_handleFile!=INVALID_HANDLE_VALUE)
		{
			DWORD filesize=GetFileSize(_handleFile,NULL);
			if (filesize == 0xFFFFFFFF)
			{
				AfxMessageBox( "獲取文件長度錯誤! " );
				return false;
			}
			if (size <=0) setHEXFile(  1024*1024 );
			
			return true;
		}
		else 	return false;
		
	}
	//打開文件寫
//DEL 	bool openFileWrite( CString filename )
//DEL 	{
//DEL 		closeFile();
//DEL 		_handleFile=CreateFile(filename,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
//DEL 		return(_handleFile!=INVALID_HANDLE_VALUE);
//DEL 	}
	//打開文件寫
	bool openFileWrite( CString filename, long filesize = 0 )
	{
		closeFile();
		if (filesize)
		{
			start = 0;
			end = filesize - 1 ;
			if (size <=0) setHEXFile(  1024*1024 );
		}
		_handleFile=CreateFile(filename,GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
		return(_handleFile!=INVALID_HANDLE_VALUE);
	}
	//關(guān)閉文件
	bool closeFile()
	{
		return(CloseHandle(_handleFile)!=0);		
	}
	
	BOOL saveString( CString txt)
	{
		if(_handleFile==INVALID_HANDLE_VALUE)
		{
			AfxMessageBox( "文件錯誤! " );
			return false;
		}
		DWORD nNumberOfBytesToWrite=txt.GetLength();
		LPDWORD lpNumberOfBytesWritten=&nNumberOfBytesToWrite;
		if(WriteFile(_handleFile,txt,nNumberOfBytesToWrite,lpNumberOfBytesWritten,NULL)==NULL)
			return false;
	}
public:
	
	/* 方法 */
	// 設(shè)定使用范圍.
	void setUsedRange( long _start, long _end ) 
	{
		if( _start < 0 || _end >= size || _start > _end )
			AfxMessageBox( "無效范圍! 起始必須不小于0,結(jié)束必須在內(nèi)存允許范圍." );
		

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久这里只有精品首页| 久久精品国产亚洲a| 奇米色一区二区| 成+人+亚洲+综合天堂| 国产精品国模大尺度视频| 午夜精品久久一牛影视| 成人av电影在线| 精品国产欧美一区二区| 五月综合激情网| 91香蕉视频在线| 久久精品一区二区三区不卡牛牛 | 色婷婷精品久久二区二区蜜臂av| 在线播放欧美女士性生活| 中文字幕日韩欧美一区二区三区| 麻豆国产一区二区| 这里只有精品99re| 亚洲一区二区三区视频在线播放| av中文字幕亚洲| 2022国产精品视频| 久久91精品久久久久久秒播| 884aa四虎影成人精品一区| 亚洲永久免费av| 色综合天天综合给合国产| 久久蜜桃av一区精品变态类天堂| 日韩电影在线一区| 91精品国产一区二区三区| 午夜亚洲福利老司机| 国产精品人妖ts系列视频| 麻豆一区二区三区| 欧美一区二区成人| 老司机免费视频一区二区| 日韩午夜av一区| 日韩精品一级中文字幕精品视频免费观看| 在线视频综合导航| 亚洲午夜免费视频| 在线91免费看| 久久国产麻豆精品| 国产亚洲短视频| av亚洲精华国产精华精华| 日韩理论片网站| 欧洲激情一区二区| 亚洲大片免费看| 日韩一级黄色大片| 韩国精品主播一区二区在线观看| 久久在线观看免费| 成人av先锋影音| 亚洲高清在线精品| 日韩一区二区在线观看| 国产麻豆欧美日韩一区| 国产精品传媒在线| 欧美男同性恋视频网站| 美腿丝袜亚洲色图| 欧美激情综合在线| 在线亚洲人成电影网站色www| 亚洲一区国产视频| 精品国产精品一区二区夜夜嗨| 国产综合久久久久久鬼色| 日韩一区在线看| 欧美一区三区二区| 国产suv精品一区二区6| 亚洲卡通动漫在线| 在线不卡免费欧美| 99久久免费精品高清特色大片| 亚洲电影你懂得| 久久久www成人免费无遮挡大片| 成人av在线资源| 日本成人在线视频网站| 国产日韩综合av| 欧美日韩你懂的| 高清av一区二区| 丝袜美腿亚洲一区| 欧美高清在线视频| 7777精品伊人久久久大香线蕉超级流畅 | 精品国产网站在线观看| 色综合久久中文字幕综合网| 麻豆91在线播放免费| 亚洲欧洲av在线| 久久亚洲免费视频| 在线看日本不卡| 国产69精品一区二区亚洲孕妇| 亚洲图片欧美视频| 国产精品―色哟哟| 欧美mv和日韩mv的网站| 91色在线porny| 欧美夫妻性生活| 91在线观看高清| 国产99久久久国产精品| 日韩国产欧美三级| 一区二区成人在线观看| 国产欧美日韩卡一| 欧美精品一区二区三区很污很色的 | 国产精品盗摄一区二区三区| 欧美一级高清片| 欧洲色大大久久| 99久免费精品视频在线观看| 国产一区二区看久久| 日韩专区在线视频| 亚洲国产一区视频| 亚洲美女视频在线| 中文字幕巨乱亚洲| 国产欧美综合在线| 国产日韩视频一区二区三区| 日韩欧美一二区| 欧美一区二区三区日韩| 欧美日韩一级片网站| 欧美色图第一页| 欧美三级一区二区| 97超碰欧美中文字幕| 91亚洲精华国产精华精华液| 成人黄色小视频| 成人禁用看黄a在线| 99久久免费精品高清特色大片| 粉嫩av一区二区三区在线播放| 国产在线一区观看| 国产盗摄一区二区三区| 国产精品一区在线观看乱码| 国产精品中文字幕日韩精品| 国产精品一二三在| 国产成人精品免费网站| 粉嫩av亚洲一区二区图片| 大尺度一区二区| 成人av电影免费在线播放| av午夜精品一区二区三区| av不卡在线观看| 在线免费观看成人短视频| 欧美日韩一区二区在线观看视频| 欧美日本一区二区在线观看| 中文字幕日本乱码精品影院| 亚洲特级片在线| 亚洲大片免费看| 裸体一区二区三区| 国产成人精品亚洲午夜麻豆| 丁香婷婷综合五月| 欧美在线观看你懂的| 日韩欧美一级特黄在线播放| 久久久久久久综合日本| 亚洲视频免费观看| 午夜av一区二区| 国产大陆精品国产| 一本到不卡精品视频在线观看| 欧美三级资源在线| 欧美不卡123| 亚洲影视在线播放| 国产在线精品一区在线观看麻豆| 粉嫩一区二区三区在线看| 欧美色精品在线视频| 久久青草国产手机看片福利盒子 | 中文字幕第一区第二区| 亚洲免费三区一区二区| 蜜桃视频在线观看一区二区| 国产在线视频精品一区| 欧美写真视频网站| 久久久久久久久一| 亚洲国产三级在线| 国产精品1区2区3区| 在线观看网站黄不卡| 亚洲精品一线二线三线| 亚洲妇熟xx妇色黄| va亚洲va日韩不卡在线观看| 欧美年轻男男videosbes| 国产精品你懂的| 毛片av一区二区| 欧美性猛交xxxxxx富婆| 中文字幕av不卡| 免费成人在线影院| 欧洲亚洲国产日韩| 国产精品拍天天在线| 麻豆国产精品官网| 欧美日韩五月天| 国产精品卡一卡二卡三| 国内偷窥港台综合视频在线播放| 在线欧美小视频| 国产精品久久久久久久久免费丝袜| 免费观看一级特黄欧美大片| 在线免费观看日本一区| 国产精品久久久久影视| 韩国女主播一区二区三区| 制服丝袜激情欧洲亚洲| 夜夜嗨av一区二区三区| 成人黄色大片在线观看| 精品国内二区三区| 麻豆国产精品官网| 欧美一区二区三区免费在线看| 亚洲在线免费播放| 91九色02白丝porn| 亚洲乱码中文字幕| 91性感美女视频| 亚洲乱码日产精品bd| 一本到不卡精品视频在线观看 | 99麻豆久久久国产精品免费优播| 26uuu国产在线精品一区二区| 日韩电影在线一区二区| 这里只有精品免费| 麻豆精品国产91久久久久久 | 色伊人久久综合中文字幕| 中文字幕久久午夜不卡| 不卡一区在线观看| 亚洲丝袜制服诱惑| 99久久夜色精品国产网站| 国产精品国产三级国产三级人妇 |