[問題] C++ unzip library

看板C_and_CPP作者 (Ferric)時間5年前 (2018/09/02 15:08), 5年前編輯推噓6(6027)
留言33則, 8人參與, 5年前最新討論串1/2 (看更多)
剛接觸 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 來的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.33.11.247 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1535872116.A.A61.html ※ 編輯: largesperm (114.33.11.247), 09/02/2018 15:11:25

09/02 15:24, 5年前 , 1F
看起來是link有問題
09/02 15:24, 1F

09/02 15:31, 5年前 , 2F
是的 網路上也都是這樣講 但是大家都沒有討論出一個
09/02 15:31, 2F

09/02 15:31, 5年前 , 3F
方法
09/02 15:31, 3F

09/02 15:31, 5年前 , 4F
晚點我直接把專案上傳再請大家看看
09/02 15:31, 4F
※ 編輯: largesperm (114.33.11.247), 09/02/2018 16:02:31

09/02 16:04, 5年前 , 5F
7z.dll
09/02 16:04, 5F

09/02 17:54, 5年前 , 6F
我記得zlib是C寫的 你有extern "C"?
09/02 17:54, 6F

09/02 17:55, 5年前 , 7F
以及你的linker flag看看是不是錯了
09/02 17:55, 7F

09/02 18:55, 5年前 , 8F

09/02 18:56, 5年前 , 9F
minizip已經幫你包裝到很方便了
09/02 18:56, 9F

09/03 20:42, 5年前 , 10F
有些api的設計是會回傳你"實際壓縮了"多少數據
09/03 20:42, 10F

09/03 20:43, 5年前 , 11F
方便做檢驗跟串流用
09/03 20:43, 11F

09/03 23:25, 5年前 , 12F
你使用VS2015去連2005編的lib?自己編一次zlib吧,你專
09/03 23:25, 12F

09/03 23:30, 5年前 , 13F
案用的zlib可能是release而你專案用debug才出事(也許)
09/03 23:30, 13F

09/04 07:02, 5年前 , 14F
dumpbin /exports zlibwapi.lib/dll 沒有 unzOpen64
09/04 07:02, 14F

09/04 23:01, 5年前 , 15F
終於懂了 ... 以前 python 拿 script 來擴充就行
09/04 23:01, 15F

09/04 23:01, 5年前 , 16F
C# 都是用人家做好的 dll C++ 得自己重新 compile
09/04 23:01, 16F

09/05 01:27, 5年前 , 17F
我看了一下 Python zipfile 的解壓縮是純 Python 刻的
09/05 01:27, 17F

09/05 01:28, 5年前 , 18F
這樣你直接參考用 C++ 自己刻一個搞不好最快
09/05 01:28, 18F

09/05 01:28, 5年前 , 19F
刻完之後記得放出來造福世界 (合十)
09/05 01:28, 19F

09/05 10:03, 5年前 , 20F
比較之後 單純的檔案壓縮解壓縮 用了 miniz
09/05 10:03, 20F

09/05 10:04, 5年前 , 21F
cmake 之後 compile 出 lib 就可以用來參考了
09/05 10:04, 21F

09/05 10:05, 5年前 , 22F
現在還是有一點很不解 為什麽幾乎每個壓縮解壓縮都是
09/05 10:05, 22F

09/05 10:05, 5年前 , 23F
說可以解到 heap or mem 這樣我要怎麼存取解壓出來的
09/05 10:05, 23F

09/05 10:05, 5年前 , 24F
檔案 可能我觀念還沒有很好 再研究看看
09/05 10:05, 24F

09/05 10:10, 5年前 , 25F
lib不一定要重編,你用gcc的話大概就不會發這一篇了
09/05 10:10, 25F

09/05 10:29, 5年前 , 26F
我是這樣想的 C# 的平台很明確是 .NET 所以給 dll
09/05 10:29, 26F

09/05 10:30, 5年前 , 27F
就能用 但是 C++ 平台有很多種 所以大多都是看到
09/05 10:30, 27F

09/05 10:31, 5年前 , 28F
直接給 .h.c.cpp 然後使用者再拿去自己的平台 compile
09/05 10:31, 28F

09/05 10:31, 5年前 , 29F
不然的話 作者就得在每個平台 compile 出 lib
09/05 10:31, 29F

09/05 10:32, 5年前 , 30F
這樣想不知道是不是正確的
09/05 10:32, 30F

09/05 11:07, 5年前 , 31F
大多數C/C++專案都是要自己去編,native就是要這樣
09/05 11:07, 31F

09/05 11:18, 5年前 , 32F
對VS使用者來說,作者只提供makefile確實會很頭痛(除非
09/05 11:18, 32F

09/05 11:20, 5年前 , 33F
像lua一樣內容單純),幸好CMake問世了
09/05 11:20, 33F
文章代碼(AID): #1RYunqfX (C_and_CPP)
文章代碼(AID): #1RYunqfX (C_and_CPP)