libpng 1.5.10错误:解除引用指向不完整类型的指针

png_read_info (png_ptr, info_ptr); { png_byte color_type = info_ptr->color_type; png_byte bit_depth = info_ptr->bit_depth; ... 

我得到的最后两行

错误:取消引用指向不完整类型的指针

怎么了? 在libpng 1.4中,这总是好的。

png_info结构已从1.5.0中的png.h中删除,现在您应该将此指针与png_get_*png_set_*函数一起使用。

如libpng手册中所述 :

png_info结构旨在提供有关PNG文件的信息。 有一段时间,png_info的字段旨在直接供用户访问。 但是,这往往会导致使用动态加载库的应用程序出现问题,因此开发了png_info(png_get _ *()和png_set _ *()函数)的一组接口函数,并且不推荐直接访问png_info字段..

例如:

 png_uint_32 height; height = png_get_image_height( png_ptr, info_ptr); 

如果您尝试设置不再可直接访问的info_ptr的内容,请使用png_set_IHDR()

如libpng手册中所述