zlib__ZC
官网:http://www.zlib.net/ ,所有版本下载:http://www.zlib.net/fossils/
ZC: 我下载的是 zlib-1.2.3.tar.gz 和 zlib-1.2.11.tar.gz(20170626当前最新版)
ZC: 我是看的一个网上的教程,具体文章不知道是哪个了...
ZC: zlib-1.2.3.tar.gz的编译方法是 进入目录“...\zlib-1.2.3\projects\visualc6”,用VC6打开 zlib.dsw,然后进行编译。最主要需要 这3个文件:zlib.h、zconf.h、zlib.lib 。
ZC: zlib-1.2.11.tar.gz的编译方法是看了“README”知道的...(方式一):进入目录“...\zlib-1.2.11\win32”用命令行编译 (方式二):进入目录“...\contrib\vstudio\...” 选择对应版本的VS目录 然后进行编译 (我没有实际使用 zlib-1.2.11.tar.gz 进行编译 和 编码...)
zlib-1.2.3.tar.gz 的 测试使用代码:
#include <stdio.h>
#include <windows.h> #include "zlib.h"
#pragma comment(lib,"zlib") void main()
{
HANDLE pfile=::CreateFile("C:\\111.bmp",GENERIC_READ,,NULL,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS,NULL);//用这个函数比OpenFile好
if(pfile==INVALID_HANDLE_VALUE)
{
MessageBox(NULL,"打开文件失败","Error",MB_OK);
CloseHandle(pfile);//一定注意在函数退出之前对句柄进行释放。
return;
}
DWORD filesize = GetFileSize(pfile,NULL);
char* buffer = new char[filesize+];//最后一位为'/0',C-Style字符串的结束符。
DWORD readsize = ;
ReadFile(pfile,buffer,filesize,&readsize,NULL); DWORD dwTick1 = ::GetTickCount();
//printf("filesize : %d, ::GetTickCount() : %d\n", filesize, dwTick1); //*
//压缩
BYTE *dest = new BYTE[filesize];
unsigned long destSize = filesize;
//Z_OK
int iRtn = compress(dest, &destSize, (unsigned char*)buffer, filesize);
//#define Z_BUF_ERROR (-5)
printf("iRtn : %d\n", iRtn);
printf("destSize : %d, ::GetTickCount() : %d\n", destSize, ::GetTickCount());
//*/
//#define Z_NO_COMPRESSION 0
//#define Z_BEST_SPEED 1
//#define Z_BEST_COMPRESSION 9
//#define Z_DEFAULT_COMPRESSION (-1) // ***
//*
// 解压
unsigned long nSize = *;
BYTE *target=new BYTE[nSize];
iRtn = uncompress(target, &nSize, dest, destSize); printf("iRtn : %d\n", iRtn);
printf("nSize : %d, ::GetTickCount() : %d\n", nSize, ::GetTickCount());
//*/ //*
HANDLE pWfile=::CreateFile("C:\\z01.bmp",GENERIC_WRITE|GENERIC_READ,,NULL,CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,NULL);//用这个函数比OpenFile好
if(pWfile==INVALID_HANDLE_VALUE)
{
//MessageBox(NULL,"打开文件失败","Error",MB_OK);
CloseHandle(pWfile);//一定注意在函数退出之前对句柄进行释放。
return;
} DWORD writesize = ; //::WriteFile(pWfile,buffer,filesize,&writesize,NULL);
::WriteFile(pWfile,target,nSize,&writesize,NULL); //善后工作
delete[]buffer;//注意是delete[]而不是delete
CloseHandle(pWfile);//关闭句柄
//*/
}
Z
zlib__ZC的更多相关文章
随机推荐
- OO第四次阶段性总结
测试与正确性论证的效果差异及优缺点 测试实际上就是对程序进行的一种黑箱测试,利用各种各样的测试样例去检验程序是否能够给出正确的结果.其中的单元测试则是将整体的测试拆分成单元来进行,但其仍然躲不开黑箱测 ...
- Linux系统——MySQL基础(二)
# MySQL数据库完全备份与恢复## 数据库备份的分类1. 从物理与逻辑的角度,备份可以分为物理备份和逻辑备份.(1)物理备份:对数据库操作系统的物理文件(数据文件.日志文件)的备份.物理备份又可分 ...
- Object之总结(一)
一.Object类中一共有12个方法.一个私有方法,两个保护方法,9个公共方法.另外还有一个静态代码块. 1.registerNatives方法.私有静态本地无参数无返回值. 2.finalize方法 ...
- 浅谈css中渐变衔接
无论transition还是keyframes,如何让变化更自然,这是前端应该考虑的问题. 这里,我简单总结下自己的方法. 以实践为例子. 1.图像渐变 @keyframes looppic{ fro ...
- EntityFramework包含作用
System.Data.Entity.Infrastructure.DbQuery的引用需要加入上面那个包
- python 用类方法和静态方法实现是追加写文件内容,和读指定行号的内容
用类方法和静态方法实现:一个是追加写文件一行内容,一个是读指定行号的内容 #coding=utf-8 class handle_file(object): def __init__(s ...
- 使用Spring实现读写分离( MySQL实现主从复制)(转)
本文转自:http://blog.csdn.net/jack85986370/article/details/51559232 1. 背景 我们一般应用对数据库而言都是“读多写少”,也就说对数据库读 ...
- Linux基础命令---bunzip2
bunzip2 解压缩bzip2压缩过的文件. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 bunzip2 ...
- Unity3D关于VR的Demo(一)
https://blog.csdn.net/qq_15807167/article/details/52048998?locationNum=8&fps=1 阅读数:9716 最近有点忙,只有 ...
- 05: MySQLdb 原生SQL语句操作数据库
1.1 MySQLdb安装与简介 1.MySQLdb 模块的安装(python3中目前这个模块还不可用)参考博客 1. linux: yum install MySQL-python 2. windo ...