出现这个问题,是由于libjpeg库的编译有问题,不要自已新建库工程一个个加jpeg-9c.zip里的文件,要按官方方法编译生成库,网上也有很多关于正确编库的说明,主要命令是
nmake nodebug=1 -f makefile.vc libjpeg.lib
记住nodebug版性能要好很多。另外,libjpeg读文件出异常就退出的问题参见:
人,技术,生活。
出现这个问题,是由于libjpeg库的编译有问题,不要自已新建库工程一个个加jpeg-9c.zip里的文件,要按官方方法编译生成库,网上也有很多关于正确编库的说明,主要命令是
nmake nodebug=1 -f makefile.vc libjpeg.lib
记住nodebug版性能要好很多。另外,libjpeg读文件出异常就退出的问题参见:
编译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); |
ShellExecuteEx使用不当会造成系统运行越来越慢,比如,如果指定了SEE_MASK_NOCLOSEPROCESS隐码,而未关闭返回的进程句柄,就是不对的,这样反复调ShellExecuteEx的后果是系统越来越慢。
正确做法是调用系统函数CloseHandle关闭返回的进程句柄。