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

这是因为createfile2至少要windows8及以上才支持,想知道原理的可参看https://msdn.microsoft.com/en-us/library/windows/desktop/hh449422(v=vs.85).aspx
不想知道的直接按下面的步骤重新编译zlib库。微笑

1.使用vs打开(我用的是2013)zlib-1.2.8\contrib\vstudio\vc11目录下的zlibvs.sln

2.在iowin32.c文件第 29行那段宏用#if _WIN32_WINNT >= _WIN32_WINNT_WIN8 和 #endif包裹,


然后右键 zlibvc-属性-配置属性-C/C++-预处理器定义中加入一行 _WIN32_WINNT=0x0601即可,编译

3.编译的时候会报:error LNK2026: 模块对于 SAFESEH 映像是不安全的。解决办法:右键 zlibvc-属性-配置属性-链接器-命令行 在后面加一行 /SAFESEH:NO 

4.之后还会报错:.\zlibvc.def(4): fatal error LNK1118: “VERSION”语句中的语法错误。解决办法,直接定位到该错误,删除VERSION那一行即可

5.直接把生成的zlibwapi.dll和zlibwapi.lib(在 x86\ZlibDllDebug目录下)拷贝到需要使用该库的工程中去~


参考博文:http://blog.csdn.net/drecik__/article/details/50342357


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值