我在我的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时出现了问题。
源代码非常大,我不知道出了什么问题,所以我不知道要在这里粘贴什么代码。
有没有人对此有任何想法?
我非常感谢你能帮助我。谢谢! :)
答案 0 :(得分:1)
你检查过传入函数的指针了吗?其中一个可能具有值8
而不是某个有效的内存地址。如果传入libpng的数据很好,则错误可能在其他地方。
次要注意事项:在任何较新(和免费)的Express Edition上使用VC ++ 6.0的原因是什么?