VC6.0下的libpng错误

时间:2011-08-10 16:11:26

标签: opengl png visual-c++ libpng

我在我的OpenGL项目中使用 libpng 在windows xp下用VC6.0加载png文件的纹理。 可以在运行期间进行构建和错误。 错误是

the instruction at 0x0040b4a3 referenced memory at 0x00000008 the memory could not be written

我尝试重启,但错误仍然存​​在。我已将exe文件放到另一个xp桌面上并且错误仍然存​​在。

调试时,我发现这个说法出错:(通常与libpng一起使用)

png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_PACKING | PNG_TRANSFORM_EXPAND, png_voidp_NULL);

错误讯息是

Unhandled exception in test.exe(NTDLL.DLL): 0xc0000005: Access Violation.

我的代码在fedora 下使用g ++工作很好,但在VC6.0下使用Windows XP时出现了问题。


源代码非常大,我不知道出了什么问题,所以我不知道要在这里粘贴什么代码。
有没有人对此有任何想法? 我非常感谢你能帮助我。谢谢! :)

1 个答案:

答案 0 :(得分:1)

你检查过传入函数的指针了吗?其中一个可能具有值8而不是某个有效的内存地址。如果传入libpng的数据很好,则错误可能在其他地方。

次要注意事项:在任何较新(和免费)的Express Edition上使用VC ++ 6.0的原因是什么?