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

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

?? chzipdlg.cpp

?? 一個C語言實現的壓縮解壓的工具代碼
?? CPP
字號:
// CHzipDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CHzip.h"
#include "CHzipDlg.h"
#include "MyFile.h"

/* 錯誤代碼 */
#define ERROR_OK				0x0			/* 無錯誤 */
#define ERROR_OPEN_SRC			0xff01		/* 不能打開源文件 */
#define ERROR_OPEN_OBJ			0xff02		/* 不能打開目標文件 */
#define ERROR_NO_MEM			0xff03		/* 沒有內存 */

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


/* 全局變量 */
CString			gstr_Src, gstr_Obj;			/* 源文件和目標文件名		*/
bool			gb_Src, gb_Obj;				/* 是否打開源文件和目標文件 */
bool			gb_ZipEnd;					/* 是否已經壓縮完畢			*/
unsigned char	guc_Progress;				/* 整體進度					*/
unsigned char	guc_Semaphore;				/* 進程使用的信號量			*/
unsigned int	gui_ErrorCode;				/* 錯誤代碼					*/

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

/* 解析程序 */
static void ParseZip( LPVOID pParam );
extern void LZARI_UnCompress( unsigned char* pInBuffer,			// 入口緩沖指針
					 unsigned int ui_InSize,			// 入口文件大小
					 unsigned char* pOutBuffer,			// 出口緩沖指針
					 unsigned int *pi_OutSize			// 出口文件大小
					);
extern void LZARI_Compress( unsigned char* pInBuffer,			// 入口緩沖指針
					 unsigned int ui_InSize,			// 入口文件大小
					 unsigned char* pOutBuffer,			// 出口緩沖指針
					 unsigned int *pi_OutSize			// 出口文件大小
					);
/*
 * Name: sema_wait
 * Desc: 等待信號量
 */
void sema_wait( void )
{
	while( 0 == guc_Semaphore )
	{
		Sleep( 50 );
	}

	guc_Semaphore --;
}

/*
 * Mame: sema_signal
 * Desc: 通知信號量
 */
void sema_signal( void )
{
	guc_Semaphore ++;
}

/*
 * Name: sema_init
 * Desc: 初始化信號量
 */
void sema_init( void )
{
	guc_Semaphore = 1;
}

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCHzipDlg dialog

CCHzipDlg::CCHzipDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCHzipDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCHzipDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCHzipDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCHzipDlg)
	DDX_Control(pDX, IDC_PROGRESS1, m_Progress);
	DDX_Control(pDX, IDC_EDIT_SRC, m_editSrc);
	DDX_Control(pDX, IDC_EDIT_OBJ, m_editObj);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCHzipDlg, CDialog)
	//{{AFX_MSG_MAP(CCHzipDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_BUTT_SRC, OnButtSrc)
	ON_BN_CLICKED(IDC_BUTT_OBJ, OnButtObj)
	ON_BN_CLICKED(IDC_BUTT_START, OnButtStart)
	ON_BN_CLICKED(IDC_BUTT_START2, OnButtStart2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCHzipDlg message handlers

BOOL CCHzipDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	gstr_Src	= _T( "" );
	gstr_Obj	= _T( "" );

	gb_Src		= false;
	gb_Obj		= false;
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CCHzipDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCHzipDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CCHzipDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

/*
 * Name: OnButtSrc
 * Desc: 打開Bin文件
 */
void CCHzipDlg::OnButtSrc() 
{
	MyFile dlgSrc( TRUE, "*.bin", "*.bin" );

	if( IDOK !=  dlgSrc.DoModal() )
		return;

	gstr_Src	= dlgSrc.GetPathName();
	gb_Src		= true;
	this->m_editSrc.SetWindowText( gstr_Src );
}



/*
 * Name: OnButtObj
 * Desc: 保存cys文件
 */
void CCHzipDlg::OnButtObj()
{
	MyFile dlgObj( FALSE, "*.*", "*.*" );

	if( IDOK != dlgObj.DoModal() )
		return;

	gstr_Obj	= dlgObj.GetPathName();
	gb_Obj		= true;
	this->m_editObj.SetWindowText( gstr_Obj );
}


/*
 * Name: OnButtStart
 * Desc: 開始壓縮
 */
void CCHzipDlg::OnButtStart() 
{
	LPVOID			nouse;
	unsigned char	*pSrc, *pObj;
	unsigned int	ui_SrcSize, ui_ObjSize;
	HANDLE			hSrc, hObj;
	DWORD			uAct;

	if( false == gb_Src ||
		false == gb_Obj
		)
	{
		MessageBox( "信息", "請打開文件!", MB_OK );
		return;
	}

	hSrc = CreateFile( gstr_Src, GENERIC_READ, FILE_SHARE_READ, NULL,
						OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL );

	if( INVALID_HANDLE_VALUE == hSrc )
	{
		MessageBox( "信息", "不能打開讀文件!", MB_OK );
		return;
	}

	hObj = CreateFile( gstr_Obj, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
						FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL );

	if( INVALID_HANDLE_VALUE == hObj )
	{
		MessageBox( "信息", "不能打開寫文件!", MB_OK );
		return;
	}

	// 得到讀文件大小
	ui_SrcSize = GetFileSize( hSrc, NULL );

	pSrc = (unsigned char*)malloc( ui_SrcSize );
	pObj = (unsigned char*)malloc( ui_SrcSize );

	if( NULL == pSrc || NULL == pObj )
	{
		MessageBox( "信息", "內存不足!", MB_OK );
		return;
	}

	ui_ObjSize = 0;
	ReadFile( hSrc, pSrc, ui_SrcSize, &uAct, NULL );

	memset( pObj, 0, ui_SrcSize );

	// 壓縮
	LZARI_Compress( pSrc, ui_SrcSize, pObj, &ui_ObjSize );

	// 寫入目標文件
	WriteFile( hObj, pObj, ui_ObjSize, &uAct, NULL );

	CloseHandle( hSrc );
	CloseHandle( hObj );

	free( pSrc );
	free( pObj );

	/* 提示錯誤 */
	if( ERROR_OK == gui_ErrorCode )
	{
		MessageBox( "成功", "信息", MB_OK );
		return;
	}

	switch( gui_ErrorCode )
	{
	case ERROR_OPEN_SRC:	/* 不能打開源文件 */
		MessageBox( "不能打開源文件", "錯誤", MB_OK );
		break;
	case ERROR_OPEN_OBJ:	/* 不能打開目標文件 */
		MessageBox( "不能打開目標文件", "錯誤", MB_OK );
		break;
	case ERROR_NO_MEM:		/* 內存不足 */
		MessageBox( "內存不足", "錯誤", MB_OK );
		break;
	default:
		MessageBox( "錯誤", "未知錯誤!", MB_OK );
		break;
	}

	return;
}

/*
 * Name: SetProgress
 * Desc: 顯示壓縮進度
 */
void CCHzipDlg::SetProgress( unsigned char uc_Progress )
{
	this->m_Progress.SetPos( uc_Progress );

	return;
}

/*
 * Name: ParseZip
 * Desc: 壓縮進程
 */
void ParseZip( LPVOID pParam )
{
}

void CCHzipDlg::OnButtStart2() 
{
	LPVOID			nouse;

	unsigned char	*pSrc, *pObj;
	unsigned int	ui_SrcSize, ui_ObjSize;
	HANDLE			hSrc, hObj;
	DWORD			uAct;


	if( false == gb_Src ||
		false == gb_Obj
		)
	{
		MessageBox( "信息", "請打開文件!", MB_OK );
		return;
	}

	hSrc = CreateFile( gstr_Src, GENERIC_READ, FILE_SHARE_READ, NULL,
						OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL );

	if( INVALID_HANDLE_VALUE == hSrc )
	{
		MessageBox( "信息", "不能打開讀文件!", MB_OK );
		return;
	}

	hObj = CreateFile( gstr_Obj, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
						FILE_ATTRIBUTE_NORMAL, (HANDLE)NULL );

	if( INVALID_HANDLE_VALUE == hObj )
	{
		MessageBox( "信息", "不能打開寫文件!", MB_OK );
		return;
	}

	// 得到讀文件大小
	ui_SrcSize = GetFileSize( hSrc, NULL );

	pSrc = (unsigned char*)malloc( ui_SrcSize );

	if( NULL == pSrc )
	{
		MessageBox( "信息", "內存不足!", MB_OK );
		CloseHandle( pSrc );
		CloseHandle( pObj );
		return;
	}

	ui_ObjSize = 0;
	ReadFile( hSrc, pSrc, ui_SrcSize, &uAct, NULL );


	ui_ObjSize = pSrc[0] | pSrc[1] << 8 | pSrc[2] << 16 | pSrc[3] << 24;
	pObj = (unsigned char*)malloc( ui_ObjSize );
	if( NULL == pObj )
	{
		MessageBox( "信息1", "內存不足!", MB_OK );
		CloseHandle( pSrc );
		CloseHandle( pObj );
		free( pSrc );
		return;
	}
	memset( pObj, 0, ui_ObjSize );

	// 壓縮
	LZARI_UnCompress( pSrc, ui_SrcSize, pObj, &ui_ObjSize );

	// 寫入目標文件
	WriteFile( hObj, pObj, ui_ObjSize, &uAct, NULL );
	CloseHandle( hSrc );
	CloseHandle( hObj );
	free( pSrc );
	free( pObj );

	/* 提示錯誤 */
	if( ERROR_OK == gui_ErrorCode )
	{
		MessageBox( "成功", "信息", MB_OK );
		return;
	}

	switch( gui_ErrorCode )
	{
	case ERROR_OPEN_SRC:	/* 不能打開源文件 */
		MessageBox( "不能打開源文件", "錯誤", MB_OK );
		break;
	case ERROR_OPEN_OBJ:	/* 不能打開目標文件 */
		MessageBox( "不能打開目標文件", "錯誤", MB_OK );
		break;
	case ERROR_NO_MEM:		/* 內存不足 */
		MessageBox( "內存不足", "錯誤", MB_OK );
		break;
	default:
		MessageBox( "錯誤", "未知錯誤!", MB_OK );
		break;
	}

	return;	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清在线一区| 精品女同一区二区| 精品久久久久久久久久久久久久久| 欧美激情一区二区三区四区 | 国产欧美日韩在线| 午夜私人影院久久久久| 99麻豆久久久国产精品免费 | 欧美色男人天堂| 日本一区二区在线不卡| 另类小说视频一区二区| 欧美日韩国产一区二区三区地区| 一区精品在线播放| 国产成人在线视频网站| 日韩一区二区三区高清免费看看| 亚洲制服欧美中文字幕中文字幕| av电影天堂一区二区在线观看| www久久久久| 日本视频一区二区三区| 欧美老女人在线| 夜夜嗨av一区二区三区四季av| 不卡电影一区二区三区| 国产日韩高清在线| 国产成人午夜视频| 久久久91精品国产一区二区三区| 久久精品国产亚洲高清剧情介绍| 91精品久久久久久久91蜜桃| 亚洲v精品v日韩v欧美v专区| 在线观看日韩电影| 伊人性伊人情综合网| 色偷偷一区二区三区| 亚洲欧洲色图综合| 99国产精品一区| 亚洲精品国产精华液| 91高清视频在线| 亚洲超碰97人人做人人爱| 欧美日本一区二区| 老司机精品视频一区二区三区| 日韩三级精品电影久久久| 六月丁香婷婷久久| 久久久天堂av| 成人激情小说乱人伦| 国产精品网友自拍| 在线国产电影不卡| 丝袜亚洲另类欧美| 精品欧美黑人一区二区三区| 国产成人8x视频一区二区| 中文字幕亚洲区| 色综合久久99| 日本一不卡视频| 国产亚洲精品精华液| 91免费看视频| 天涯成人国产亚洲精品一区av| 日韩视频在线观看一区二区| 激情深爱一区二区| 亚洲欧洲日本在线| 欧美日韩情趣电影| 久久疯狂做爰流白浆xx| 中文字幕欧美激情| 欧美日韩成人在线| 国产一区二区女| 亚洲免费伊人电影| 日韩午夜在线播放| 91一区二区在线| 日本欧美肥老太交大片| 国产无人区一区二区三区| 91浏览器打开| 经典三级一区二区| 国产精品短视频| 91精品国产综合久久精品app | 日韩经典一区二区| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产精品123| 亚洲亚洲精品在线观看| 国产午夜精品久久久久久免费视 | 波多野结衣亚洲一区| 亚洲综合清纯丝袜自拍| 久久精品欧美一区二区三区不卡| 色婷婷av一区二区三区软件 | 欧美吻胸吃奶大尺度电影| 国产一区美女在线| 午夜成人免费电影| 亚洲国产激情av| 8x8x8国产精品| 97久久精品人人做人人爽 | 香蕉久久夜色精品国产使用方法| 久久久欧美精品sm网站| 69成人精品免费视频| 成人一区二区视频| 久久99久久99精品免视看婷婷| 亚洲一二三区在线观看| 国产精品久久久久毛片软件| 26uuu精品一区二区三区四区在线| 色狠狠av一区二区三区| 国产精品一卡二卡| 麻豆精品精品国产自在97香蕉 | 免费观看日韩电影| 亚洲国产毛片aaaaa无费看| 国产精品久久久久久福利一牛影视 | 欧美丰满高潮xxxx喷水动漫| 不卡一区中文字幕| 国产精品一线二线三线| 琪琪久久久久日韩精品| 亚洲va韩国va欧美va精品| 亚洲日本青草视频在线怡红院 | 久久久美女毛片| 91精品国产91久久久久久最新毛片| 91久久国产最好的精华液| 99久久亚洲一区二区三区青草| 国产传媒一区在线| 国产69精品久久久久毛片| 激情综合色播五月| 精品在线免费视频| 奇米色一区二区| 日韩av一区二| 久久精品噜噜噜成人88aⅴ| 天天色天天操综合| 日本午夜一区二区| 精品亚洲aⅴ乱码一区二区三区| 天堂一区二区在线| 喷白浆一区二区| 久久精工是国产品牌吗| 国产在线视视频有精品| 国产精品自拍av| 成+人+亚洲+综合天堂| 一本色道久久综合狠狠躁的推荐| 色欧美片视频在线观看在线视频| 欧美在线观看一区| 91精品一区二区三区久久久久久| 91麻豆精品国产91久久久久久 | 成人黄色软件下载| 91精品91久久久中77777| 欧美日韩精品一区二区三区四区| 欧美三级日本三级少妇99| 欧美一级淫片007| 国产亚洲午夜高清国产拍精品| 中文字幕日韩精品一区| 亚洲一区二区三区四区的| 免费亚洲电影在线| 国产suv精品一区二区883| 91婷婷韩国欧美一区二区| 欧美日本在线观看| 国产欧美日韩综合精品一区二区| 亚洲欧美日韩在线| 青青青伊人色综合久久| 国产精品一卡二卡| 欧美私人免费视频| 久久一区二区三区四区| 一区二区三区在线视频免费观看| 日韩专区一卡二卡| 成人高清免费观看| 欧美挠脚心视频网站| 久久久久成人黄色影片| 亚洲国产综合在线| 国产不卡免费视频| 欧美日本在线看| 国产精品美女久久久久久久| 日韩影院在线观看| 成人性色生活片| 欧美一区二区人人喊爽| 国产精品天美传媒| 免费在线成人网| 欧洲国内综合视频| 国产欧美日韩激情| 麻豆视频一区二区| 色欧美88888久久久久久影院| 2021国产精品久久精品 | 亚洲伊人伊色伊影伊综合网| 狠狠色丁香婷综合久久| 欧美日韩一级黄| 国产精品久久久久影院老司| 精品一区二区三区香蕉蜜桃 | 久久国产尿小便嘘嘘| 欧亚一区二区三区| 中文字幕在线播放不卡一区| 精品中文字幕一区二区小辣椒| 欧美亚洲日本一区| 国产精品欧美久久久久无广告| 麻豆视频观看网址久久| 欧美亚洲综合另类| 亚洲欧美日韩在线| 成人激情黄色小说| 国产欧美视频一区二区三区| 韩国午夜理伦三级不卡影院| 91精品欧美福利在线观看| 亚洲综合激情另类小说区| av在线播放一区二区三区| 欧美国产综合一区二区| 国产乱码精品一区二区三区忘忧草 | 亚洲人吸女人奶水| 成人av电影在线观看| 久久精品人人做| 国产成人av自拍| 国产欧美一二三区| 丁香网亚洲国际| 国产精品视频观看| 白白色亚洲国产精品| 亚洲视频一区二区在线| 99re热视频这里只精品| 亚洲视频电影在线| 日本久久电影网|