libzip 编译 minizip 运行时 CreateFile2 无法在Kernel32定位

  1. 编译libzip

    使用vs打开(我用的是2012)zlib-1.2.8\contrib\vstudio\vc11目录下的zlibvs.sln,用这个会包含minizip代码,如果只想压缩和解压内存数据,可以用cmake来编译。
    编译的时候会报:error LNK2026: 模块对于 SAFESEH 映像是不安全的。解决办法:右键 zlibvc-属性-配置属性-链接器-命令行 在后面加一行 /SAFESEH:NO
    之后还会报错:.\zlibvc.def(4): fatal error LNK1118: “VERSION”语句中的语法错误。解决办法,直接定位到该错误,删除VERSION那一行即可

  2. 测试编译的libzip

    直接编译项目中的minizip,一次性通过
    然后copy libzip生成的zlibwapi.dll(在 x86\ZlibDllDebug目录下)到x86\MiniZipDebug中,直接运行该文件夹下的minizip.exe报错 CreateFile2 无法在Kernel32定位,没有错误的直接忽略,说明可以用了。
    该错误解决办法在iowin32.c 29行那段宏用 #if _WIN32_WINNT >= _WIN32_WINNT_WIN8 和 #endif包裹,然后右键 zlibvc-属性-配置属性-C/C++-预处理器定义中加入一行 _WIN32_WINNT=0x0601即可,重新编译,并copy zlibwapi.dll之后 minizip.exe运行终于不报错了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值