我是win7 64位家庭版。我的所有项目都设置为使用 C++ 在 32 位环境中构建。我已经使用 MDd 运行时在调试模式下成功构建了 libpng。我有两个活跃的项目。我的第一个项目是在 VS2010 中,我的第二个项目是在 VS2012 中。在我的计算机中,我创建了一个设置为该库路径的环境变量,以使我的项目中的链接更容易。我的两个项目都使用 MDd 以及 libpng 使用的多字节。我所有的路径和依赖项都是正确的。我还将 libpng16.dll 复制到与它们构建的可执行文件相同的目录中的两个项目中。我可以成功编译和构建这两个项目。我的 VS2010 项目运行并渲染加载的 PNG 图形,但是我在 VS2012 中的项目没有。
check = fread( data, 1, length, png_voidcast( png_FILE_p, png_ptr->io_ptr ) );
在 pngrio.c 中。给出这个错误:
First-chance exception at 0x77308E19 (ntdll.dll) in Game_debug.exe: 0xC0000005:
Access violation writing location 0x00000014.
问题不在我的源代码中,因为我知道它适用于我的 VS2010 项目,并且我正在使用相同的实现在我的 VS2012 项目中加载 png。我不确定我要链接到的库是在 VS2010 中构建的,还是我的 VS2012 项目不喜欢的 VS2010 构建库中有一些命令行/编译器设置是否会有所不同。我已经阅读了 png 文档并在网上搜索了几个小时,但似乎找不到任何相关的东西。任何形式的帮助、提示、指示或建议都会对我有很大帮助。