VS 2013用到的Zlib库 出现create2 Not found 解决办法

转载 2016年09月07日 18:00:20

环境:win7 x64 + vs2013

1.用vs2013打开zlib-1.2.8\contrib\vstudio\vc11\zlibvc.sln进行编译

包含了下面的的多个项目:

miniunz:一个解压的测试例子(下面所使用的测试使用用例)

minizip:一个压缩的测试例子

testzlib:使用zlib静态库,并测试压缩/解压效率

testzlibdll:使用zlib动态库,并测试压缩/解压效率

zlibstat:生成zlib静态库的项目

zlibvc:生成zlib动态库的项目

 

2.error LNK2026: 模块对于 SAFESEH 映像是不安全的。

解决办法:

①zlibvc-属性-配置属性-链接器-命令行 在后面加上 /SAFESEH:NO

②testzlib-属性-配置属性-链接器-命令行 在后面加上 /SAFESEH:NO

 

3.fatal error LNK1118: “VERSION”语句中的语法错误

解决办法:找到报错位置,zlibvc.def文件第4行的VERSION语句行,直接删除该行或者在行首加上;号进行注释。

 

 4.成功编译后

①项目生成的文件都在zlib-1.2.8\contrib\vstudio\vc11\x86\

②将zlib-1.2.8\contrib\vstudio\vc11\x86\ZlibDllDebug中的zlibwapi.dll拷贝到MiniUnzipDebug文件夹中

③在命令窗口cmd中运行miniunz.exe

 

5.报错:无法定位程序输入点CreateFile2于动态链接库KERNEL32.dll上

解决办法:

①找到iowin32.c文件,在对应位置上增加宏判断#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 和 #endif

②不要忘记这一步!!!

zlibvc-属性-配置属性-C/C++-预处理器定义 加入一行 _WIN32_WINNT=0x0601

 

6.

①清理解决方案!!!

②重新编译拷贝zlibwapi.dll到MiniUnzipDebug文件夹中

③在命令窗口cmd中运行miniunz.exe,正常运行并显示命令列表,如下(表示已经可以正常运行):

 

7.使用miniunz.exe对一个压缩文件1.zip进行解压测试,出现错误Cannot open 1.zip or 1.zip.zip错误,如下图

 

解决办法有两种:

第①种:屏蔽miniunz.c中对应的代码,重新编译miniunz项目

第②种:将iowin32.c文件第247行与374行的 FILE_CURRENT 都改为 dwMoveMethod即可,重新编译拷贝zlibwapi.dll


本人用到的是上面的第五步

相关文章推荐

char*动态数组用c++ifstream和ofstream进行文件读写并用memset初始化

char* str = new char[100]; strcpy(str, "abcdef"); ofstream fout("a.dat", ios::binary); int len =...

用到zlib库的程序运行时报错:无法定位程序输入点createfile2于动态链接库KERNEL32.DLL上

这是因为createfile2至少要windows8及以上才支持,想知道原理的可参看https://msdn.microsoft.com/en-us/library/windows/desktop/h...

bashfdiskcommand not found 解决办法

  • 2015年08月11日 15:57
  • 856B
  • 下载

解决办法 fonts/fontawesome-webfont.woff2 404 (Not Found)

css 加载字体时,明明有 woff2 文件,路径也是对的,但是显示404错误,解决办法:添加MINE类型支持就可以了...

suse10下nodejs安装时提示openssl not found的问题解决办法 1、首先确认openssl有没有安装,使用命令 openssl version 2、明明已经安装了openssl

http://www.2fz1.com/post/suse10-node-js-openssl-not-found/ suse10下nodejs安装时提示openssl not fo...

新建JSP无法运行出现错误The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Pat解决办法

The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
  • UckyK
  • UckyK
  • 2014年10月13日 23:33
  • 2370

升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法

升级10.11后使用CocoaPod出现-bash: pod: command not found 解决办法

Swift开发coredata出现Class not found解决办法

转载自http://blog.csdn.net/longhai0long/article/details/38379247 刚看swift开发IOS,在使用Core Data框架时遇...

使用CocoaPod出现-bash: pod: command not found 解决办法

今天在使用CocoaPod为项目添加第三方类库时,出现了-bash: pod: command not found的问题。没办法啦,网上各种找啊,找啊!按照网上说的方法使用命令:sudo gem in...

在旧版本Ubuntu系统中使用“apt-get update”出现“404 Not Found”错误的解决办法

每一个Ubuntu发布版本都有它的结束时间,通常,Ubuntu发布版本支持18个月,而LTS (Long Term Support)(长期支持)版本分别支持3年(服务器版)和5年(桌面版)。当一个Ub...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VS 2013用到的Zlib库 出现create2 Not found 解决办法
举报原因:
原因补充:

(最多只允许输入30个字)