[问题] 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