- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四节:Package2解包程序的实现 1、vs2008向导生成Package2程序 2、新建一个CPackageLoader类(这个类负责解出Package1打包的文件) 3、在CPackageLaoder类中添加几个接口 4、实现打开包裹文件的OpenPackage函数 5、实现得到包裹里面有多少个PackageItemq结构的GetPackageItemCount函数 6、实现得到打包文件的信息的GetPackageItem函数 7、实现导出包裹文件并保存到szTargetName的ExportPackageItem函数 8、测试Package2解包程序 9、显示运行结果 第四节:Package2解包程序的实现 实现得到打包文件的信息的GetPackageItem函数 第四节:Package2解包程序的实现 1、vs2008向导生成Package2程序 2、新建一个CPackageLoader类(这个类负责解出Package1打包的文件) 3、在CPackageLaoder类中添加几个接口 4、实现打开包裹文件的OpenPackage函数 5、实现得到包裹里面有多少个PackageItemq结构的GetPackageItemCount函数 6、实现得到打包文件的信息的GetPackageItem函数 7、实现导出包裹文件并保存到szTargetName的ExportPackageItem函数 8、测试Package2解包程序 9、显示运行结果 第四节:Package2解包程序的实现 实现ExportPackageItem函数 导出包裹文件并保存到szTargetName bool CPackageLoader::ExportPackageItem( const PackageItem*pItem, const char*szTargetName ) { //为了演示,我们这里去掉了m_fpPackage合法性判断, pItem合法性判断和szTargetName的判断 FILE*fp = fopen( szTargetName, wb ); if( !fp ) { printf( 打开%s失败\n, szTargetName ); return false; } //移动文件指针到指定位置,由于我们的OffsetPackage数据包含了PackageItem信息 //所以打包文件的真实偏移还需要加上sizeof( PackageItem ) fseek( m_fpPackage, pItem-OffsetPackage + sizeof( PackageItem ), SEEK_SET ); //写入文件数据,我们准备一个K的缓冲区 char szBuffer[65536]; 第四节:Package2解包程序的实现 实现ExportPackageItem函数 //我们需要读取的文件大小 int LeftSize = pItem-FileSize; while( 1 ) { //实际要读取的大小 int ReadSize = LeftSize; //如果大于缓冲区,我们就只读取缓冲区大小的内容,剩余的下次读取 if( ReadSize sizeof( szBuffer ) ) { ReadSize = sizeof( szBuffer ); } //读取文件 int nReadBytes = fread( szBuffer, 1, ReadSize, m_fpPackage ); //ReadSize必须要等于nReadBytes,演示代码我们不做过多判断 assert( ReadSize == nReadBytes ); 第四节:Package2解包程序的实现 实现ExportPackageItem函数 //写入包裹 fwrite( szBuffer, 1, nReadBytes, fp ); LeftSize -= nReadBytes; //如果剩余大小为,就读取完成了 if( LeftSize == 0 ) { break; } }//wile循环结束 fclose( fp ); return true; } 第四节:Package2解包程序的实现 1、vs2005向导生成Package2程序 2、新建一个CPackageLoader类(这个类负责解出Package1打包的文件) 3、在CPackageLaoder类中添加几个接口 4、实现打开包裹文件的OpenPackage函数 5、实现得到包裹里面有多少个PackageItemq结构的GetPackageItemCount函
您可能关注的文档
- 培训课程—维雅滋润系列护肤品推广讲座.ppt
- 20道数量关系精讲讲座.ppt
- CRT-CRT手术CS狭窄盲找靶静脉一例.pptx
- 建设工程项目全过程造价控制.ppt
- 运动损伤本科教学课件.ppt
- 技能精英的培养:行动、方法和绩效讲座.ppt
- 围手术期处理、组织修复与创伤愈合.ppt
- 高三二轮地理复习精品课件战略二攻克难关—强化五大类图表判读能力课件全国通用.ppt
- BIM技术在结构设计中的应用1模板.pptx
- 低碳经济讲座迈向低碳经济课件.ppt
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)