| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 473 人关注过本帖
标题:帮忙解释个程序
取消只看楼主 加入收藏
danzengduoji52
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-4-22
收藏
 问题点数:0 回复次数:0 
帮忙解释个程序
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"  
#include "string.h"
#include "memory.h"         
#include "conio.h"
#include "lzwcode.h"
#include "lzwtable.h"

/*
class CLZWEncodeTable
*/
CLZWDecodeTable::CLZWDecodeTable(BOOL fInit)
{
    m_pbContain=NULL;
    m_dwTableEntryNumber=0;
    if(fInit)
        InitLZWTable();
}
CLZWDecodeTable::~CLZWDecodeTable()
{
    ClearDecodeTable();
}
void CLZWDecodeTable::ClearDecodeTable(void)
{   
    if(m_pbContain==NULL)
        return;
    for(int i=0;i<4096;i++)
    {
        if(m_pbContain[i])
            delete (m_pbContain[i]);
    }
    delete m_pbContain;
    m_pbContain=NULL;
    m_dwTableEntryNumber=0;
}
void CLZWDecodeTable::InitLZWTable(void)
{
    ClearDecodeTable();
    m_pbContain=new BYTE*[4096];
    int iSize=sizeof(m_pbContain);
    //if(NULL==m_pbContain)
    //    AfxMessageBox("error new m_pbContain=BYTE*[4096]");
    for(int i=0;i<4096;i++)
    {
        m_pbContain[i]=NULL;
    }
    for(i=0;i<=255;i++)
    {
        m_pbContain[i]=new BYTE[1+2];
        *((WORD*)m_pbContain[i])=1;
        m_pbContain[i][2]=(BYTE)i;
    }
    m_dwTableEntryNumber=LZW_BEGIN_ENTRY;
}
BYTE* CLZWDecodeTable::GetMatchData(WORD wCode)
{
    return m_pbContain[wCode];
}
void CLZWDecodeTable::AddToChild(WORD wCode,BYTE *pbContain,int iLength)
{
    ASSERT(wCode<4096);
    if(m_pbContain[wCode])
        delete m_pbContain[wCode];
    m_pbContain[wCode]=new BYTE[iLength+2];
    *((WORD*)m_pbContain[wCode])=(WORD)iLength;
    memcpy(m_pbContain[wCode]+2,pbContain,iLength);
}

/*
class CLZWEncodeTable
*/
CLZWEncodeTable::CLZWEncodeTable(BOOL fInit)
搜索更多相关主题的帖子: 解释 
2008-04-22 16:26
快速回复:帮忙解释个程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016351 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved