libjpeg读烂文件出异常0xC0000005

出现这个问题,是由于libjpeg库的编译有问题,不要自已新建库工程一个个加jpeg-9c.zip里的文件,要按官方方法编译生成库,网上也有很多关于正确编库的说明,主要命令是

nmake nodebug=1 -f makefile.vc libjpeg.lib

记住nodebug版性能要好很多。另外,libjpeg读文件出异常就退出的问题参见:

libjpeg exit

libjpeg exit

编译jpeg-9c后得到libjpeg.lib,按照网上的例程,读jpg文件时,只要jpg文件有错误,libjpeg库的函数内部就直接调系统函数exit退出了,这在整合libjpeg库到大型程序里时是绝对不能允许的。仔细查看库里的libjpeg.txt,才知道原来libjpeg能自定义错误处理,例程在example.c文件里的read_JPEG_file。

以下是我整理好的集成接口:
ReadJpg.h

#pragma once
 
HBITMAP readJpegAsBitmap(const char *fileName);

Read more