[問題] C++ unzip library

作者: largesperm (reindeer)   2018-09-02 15:08:33
剛接觸 win32 application
之後都是接觸 python 跟 c#
目前需要用到一個功能是 unzip .zip file
之前寫法都是直接找 library 來用 不用設定很多
不過我試了好幾天 win32 一直寫不出來
我找過最多人用的 zlib 一直跑出
unresolved external symbol *** referenced in function
網路上也很多人有這問題 但是都沒找到解答 有一點這麼灰心
但是這老牌子了 能成功能使用的人一定很多 這就有點怪
請問有板友知道 單純想要 unzip .zip file
要 import library 的話 要怎麼做最簡單
謝謝
對了 還有一個疑問 zlib 原本不是要被拿來解壓縮用的
他似乎是壓縮後會馬上解壓縮 還得記得憶壓縮前的大小
請問這在什麼地方會有這樣的應用
謝謝
專案檔 https://1drv.ms/u/s!Auk1qqHSCCLiiegynPpLKLrOfyf5Pg
補充說明一下 因為 zlib 的原意不是拿來解壓縮用的
所以用的指令是他的 contrib 下面的 minizip
除了 zlib 之外的檔案都是從 minizip 來的
作者: bluesoul (忙死你老爸)   2018-09-02 15:24:00
看起來是link有問題
作者: largesperm (reindeer)   2018-09-02 15:31:00
是的 網路上也都是這樣講 但是大家都沒有討論出一個方法晚點我直接把專案上傳再請大家看看
作者: MOONY135 (談無慾)   2018-09-02 16:04:00
7z.dll
作者: Killercat (殺人貓™)   2018-09-02 17:54:00
我記得zlib是C寫的 你有extern "C"?以及你的linker flag看看是不是錯了
作者: eye5002003 (下一夜)   2018-09-02 18:55:00
https://tinyurl.com/yb3dmk6xminizip已經幫你包裝到很方便了
作者: nobodycares (沒人在乎)   2018-09-03 20:42:00
有些api的設計是會回傳你"實際壓縮了"多少數據方便做檢驗跟串流用
作者: eye5002003 (下一夜)   2018-09-03 23:25:00
你使用VS2015去連2005編的lib?自己編一次zlib吧,你專案用的zlib可能是release而你專案用debug才出事(也許)
作者: firose (guest也是也是也是也是也)   2018-09-04 07:02:00
dumpbin /exports zlibwapi.lib/dll 沒有 unzOpen64
作者: largesperm (reindeer)   2018-09-04 23:01:00
終於懂了 ... 以前 python 拿 script 來擴充就行C# 都是用人家做好的 dll C++ 得自己重新 compile
作者: uranusjr (←這人是超級笨蛋)   2018-09-05 01:27:00
我看了一下 Python zipfile 的解壓縮是純 Python 刻的這樣你直接參考用 C++ 自己刻一個搞不好最快刻完之後記得放出來造福世界 (合十)
作者: largesperm (reindeer)   2018-09-05 10:03:00
比較之後 單純的檔案壓縮解壓縮 用了 minizcmake 之後 compile 出 lib 就可以用來參考了現在還是有一點很不解 為什麽幾乎每個壓縮解壓縮都是說可以解到 heap or mem 這樣我要怎麼存取解壓出來的檔案 可能我觀念還沒有很好 再研究看看
作者: eye5002003 (下一夜)   2018-09-05 10:10:00
lib不一定要重編,你用gcc的話大概就不會發這一篇了
作者: largesperm (reindeer)   2018-09-05 10:29:00
我是這樣想的 C# 的平台很明確是 .NET 所以給 dll就能用 但是 C++ 平台有很多種 所以大多都是看到直接給 .h.c.cpp 然後使用者再拿去自己的平台 compile不然的話 作者就得在每個平台 compile 出 lib這樣想不知道是不是正確的
作者: eye5002003 (下一夜)   2018-09-05 11:07:00
大多數C/C++專案都是要自己去編,native就是要這樣對VS使用者來說,作者只提供makefile確實會很頭痛(除非像lua一樣內容單純),幸好CMake問世了

Links booklink

Contact Us: admin [ a t ] ucptt.com