描述:
我现在要做一个组件,但遇到要setjmp。有谁用过setjmp,他起什么作用,在ATL工程中能不能使用。
部分代码:
struct jpeg_decompress_struct cinfo;
struct my_error_mgr jerr;
FILE * infile=NULL; /* source file */
JSAMPARRAY buffer; /* Output row buffer */
int row_stride;
if ((infile = fopen(fileName, "rb")) == NULL) {
m_errorText = "JPEG :\nCan't open " + fileName;
return NULL;
}
m_errorText = "Step 1: allocate and initialize JPEG decompression object ";
cinfo.err = jpeg_std_error(&jerr.pub);
jerr.pub.error_exit = my_error_exit;
if (setjmp(jerr.setjmp_buffer)) { //此处执行不过去了!
m_errorText = "Setjmp is error!";
jpeg_destroy_decompress(&cinfo);
if (infile!=NULL)
fclose(infile);
if (dataBuf!=NULL){
delete [] dataBuf;
}
return NULL;
}