| lzw压缩算法的c语言实现 |
|
|
|
|
| 来源: 作者: 添加日期:2006-7-17 6:53:04 点击次数: |
|
lzw->lp_prefix = GlobalLock( lzw->h_prefix ); lzw->lp_suffix = GlobalLock( lzw->h_suffix ); lzw->code = LZW_BASE; lzw->cur_code_len = 9; lzw->h_sour = h_sour; lzw->h_dest = h_dest; memset( lzw->lp_code, 0xFFFF, TABLE_LEN*sizeof(WORD) );
} //------------------------------------------------------------------------------ VOID lzw_destory(PLZW_DATA lzw) { GlobalUnlock( lzw->h_code ); GlobalUnlock( lzw->h_prefix ); GlobalUnlock( lzw->h_suffix );
GlobalFree( lzw->h_code ); GlobalFree( lzw->h_prefix ); GlobalFree( lzw->h_suffix ); } //------------------------------------------------------------------------------ #endif
(2) fileio.h 定义了一些文件操作
#ifndef __FILEIO_H__ #define __FILEIO_H__ //------------------------------------------------------------------------------ #include <stdio.h> #include <stdlib.h> #include <windows.h> //------------------------------------------------------------------------------ HANDLE file_handle(CHAR* file_name) { HANDLE h_file; h_file = CreateFile(file_name, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, 0, NULL ); return h_file; } //------------------------------------------------------------------------------ WORD load_buffer(HANDLE h_sour, PBUFFER_DATA buffer) // Load file to buffer { DWORD ret; ReadFile(h_sour,buffer->lp_buffer,BUFFERSIZE,&ret,NULL); |
|
| |