| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- C#
- ClickOnce
- 블루투스 헤드셋
- 와이브로
- 설치제거
- JavaScript
- crashlog
- 크래시로그
- docker
- 기념일관리
- 데이터 전달
- EUC-KR
- C/C++
- self-signed ssl
- API
- php
- M8200
- 한 번만 실행
- Font
- VS2008
- protobuf-c
- net
- Antialiasing
- phpmailer
- PDA
- .net
- plcrashreporter
- MFC
- 자바스크립트
- GDI
- Today
- Total
~☆~ 우하하!!~ 개발블로그
압축 관련 프로그램(VC++) 작성하기 위해서 zlib, libzip 라이브러리 사용하는 방법 본문
압축관련 프로그램을 개발하기 위해서 zlib 와 libzip 라이브러리가 필요하다.
zlib 는 압축 알고리즘을 구현한 라이브러리이고,
libzip 은 압축된 데이터를 파일로 처리하는 로직을 구현한 라이브러리이다.
즉, libzip 이 내부적으로 zlib 를 사용한다.
Visual Studio 를 이용하여 프로그램 개발하기 위해서 위 2개의 라이브러리를 포함시키기 위해서는 각 라이브러리를 빌드한 아웃풋 파일과 각 라이브러리의 헤더 파일이 있어야 한다.
2개의 라이브러리를 Visual Studio 에서 빌드하기 쉽게 만든 github 프로젝트가 존재한다.
kiyolee - Overview
kiyolee has 48 repositories available. Follow their code on GitHub.
github.com
위 계정의 리파지토리에서 zlib-win-build 와 libzip-win-build 이다.
순서적으로 zlib 를 먼저 빌드하고, libzip 을 그 후에 빌드한다.
프로젝트 하위에 include 디렉토리를 생성하고 아래 그림과 같이 3개의 파일을 넣어둔다.

프로젝트 하위에 libs 디렉토리를 생성한 후에 _Debug 와 _Release 디렉토리를 생성해 둔다.

디렉토리명 앞에 언더바(_) 문자를 붙인 이유는 해당 디렉토리에는 git 이나 svn 등의 형상관리시스템에서 관리되어야 하는 파일들이 저장되는데, 관리되지 말아야 하는 목록에 Debug 나 Release 디렉토리를 넣어두었을 때 자칫 이 디렉토리에 저장되는 파일들이 누락될 수 있기 때문이다.
_Debug 디렉토리와 _Release 디렉토리에는 zlib, libzip 프로젝트의 빌드 결과물중 static 라이브러리 결과물 파일을 복사해둔다.

Debug 버전의 결과파일명과 Release 버전의 결과파일명은 동일하므로 파일명은 위 그림을 참고하면 되겠다.
이제 프로젝트의 속성에서 include 디렉토리를 추가 포함 디렉토리로 등록한다.

libs 디렉토리는 추가 라이브러리 디렉터리로 등록해준다.

마지막으로 .lib 파일을 추가 종속성 항목으로 등록한다.

이제 압축파일을 핸들링하는 로직을 작성하는 파일에서 #include <zip.h> // libzip 헤더 를 해주면 libzip 라이브러리가 제공하는 여러 함수들을 사용할 수 있다.
zlib 는 libzip 에서 내부적으로 사용하므로 직접 사용할 일은 없겠다.
아래 리파지토리는 위와 같은 프로젝트 설정에 기반을 두어 만든 압축 기능의 프로그램 프로젝트이다.
https://github.com/woohahaApps/SelectZip
GitHub - woohahaApps/SelectZip: SelectZip
SelectZip. Contribute to woohahaApps/SelectZip development by creating an account on GitHub.
github.com
'C & C++' 카테고리의 다른 글
| [공개] SelectZip - 특정 확장자만을 압축하는 유틸리티, 프로젝트 (0) | 2025.12.17 |
|---|---|
| VC++ 6.0 에서 문자열의 float 또는 double 형 변환 (0) | 2008.11.08 |
| 편집기(워드프로세서형) 개발시 필수 요소 (0) | 2008.10.12 |
| ANSI vs UNICODE in CRT(C Run Time Library) (0) | 2008.07.22 |