C#의 GZipStream으로 압축된 String 데이터를 C++ 프로그램에서 다룰 일이 생겼습니다. 이를 위한 라이브러리 검토 중 POCO C++를 사용해 테스트를 진행해보도록 하겠습니다.
1. POCO C++ 다운로드
vcpkg를 사용해 라이브러리를 다운로드합니다. vcpkg 설치는 다음 글을 참조해 설치해 주시기 바랍니다: C++ 라이브러리를 위한 vcpkg 설치 방법
vcpkg가 설치된 폴더로 이동해 다음 명령어로 POCO C++를 다운로드합니다.
.\vcpkg install POCO:x64-windows
잠시 기다리면 다운로드와 빌드가 완료되고 라이브러리를 확인할 수 있습니다.
2. 프로젝트 생성
간단한 C++ 콘솔 프로젝트를 생성합니다. 이후 다운로드한 라이브러리를 import 합니다.
이제 "Hello World"를 gzip 압축 및 압축 해제하는 코드를 작성합니다.
3. 코드 작성
다음과 같이 코드를 작성합니다.
#include <iostream>
#include <sstream>
#include <Poco/InflatingStream.h>
#include <Poco/DeflatingStream.h>
#include <Poco/StreamCopier.h>
int main()
{
std::ostringstream stream1;
Poco::DeflatingOutputStream
gzipper(stream1, Poco::DeflatingStreamBuf::STREAM_GZIP);
gzipper << "Hello World!";
gzipper.close();
std::string zipped_string = stream1.str();
std::cout << "zipped_string: [" << zipped_string << "]\n";
std::ostringstream stream2;
Poco::InflatingOutputStream
gunzipper(stream2, Poco::InflatingStreamBuf::STREAM_GZIP);
gunzipper << zipped_string;
gunzipper.close();
std::string unzipped_string = stream2.str();
std::cout << "unzipped_string back: [" << unzipped_string << "]\n";
}
"Hello World!"를 GZIP 압축 및 압축 해제하는 코드입니다. 콘솔로 실행시키면 다음과 같이 정상 동작하는 것을 확인할 수 있습니다.
반응형
'Programming > C++' 카테고리의 다른 글
[DCMTK] DCMTK 3.6.7 VisualStudio 2022로 빌드하기 (0) | 2023.07.05 |
---|---|
C++ Encoding / Decoding Base64 (0) | 2022.12.08 |
C++ 라이브러리를 위한 vcpkg 설치 방법 (0) | 2022.12.08 |
[MFC] mfc100ud.lib 파일을 열 수 없습니다. (0) | 2021.10.27 |
[C++] Fatal error C1083 포함 파일을 열 수 없습니다. 'ctype.h': No such file or directory (0) | 2021.07.20 |