画像の変換処理(読み込み、保存)を繰り返し実行した場合エラーが発生する
対象製品
LEADTOOLS 17.5J Document Imaging
発生環境
ネイティブ関数
状況
修正済み
詳細
画像の変換処理(読み込み、保存)を繰り返し実行し続けた場合にエラーが発生します。
本現象は、300万回以上といった非常に膨大な回数を繰り返し実行した場合にエラーが発生します。
詳細には、「例外コード:0xc0000374(ヒープは壊れています)」の例外が発生し、アプリケーションが異常終了します。
本現象は、300万回以上といった非常に膨大な回数を繰り返し実行した場合にエラーが発生します。
詳細には、「例外コード:0xc0000374(ヒープは壊れています)」の例外が発生し、アプリケーションが異常終了します。
回避方法
本内容はService Pack 3(v17.5.0.91)にて修正されました。
不具合を修正した最新のサービスパックは、このサイトのアップデートページからダウンロードできます。
SP3を使用しない場合の回避方法は以下のとおりです。
L_PreLoadFilters関数とL_IgnoreFilters関数によりメモリに常駐するフィルタファイルの設定と解除を行う方法をご検討ください。使用する画像のフィルタファイルのみを設定します。
以下はJPEGファイルを読み込む場合の回避コードです。
//====================
// 常駐フィルタの設定
nRet = L_PreLoadFilters( 1, 1, TEXT("CMP"));
if(nRet != SUCCESS)
return nRet;
//====================
nRet = L_LoadBitmap (TEXT("test.jpg"), &Bitmap1, sizeof(BITMAPHANDLE), 0, ORDER_RGB, NULL, NULL);
if(nRet != SUCCESS)
return nRet;
~ 処理 ~
//====================
nRet = L_IgnoreFilters(TEXT("CMP"));
if(nRet != SUCCESS)
return nRet;
//====================
不具合を修正した最新のサービスパックは、このサイトのアップデートページからダウンロードできます。
SP3を使用しない場合の回避方法は以下のとおりです。
L_PreLoadFilters関数とL_IgnoreFilters関数によりメモリに常駐するフィルタファイルの設定と解除を行う方法をご検討ください。使用する画像のフィルタファイルのみを設定します。
以下はJPEGファイルを読み込む場合の回避コードです。
//====================
// 常駐フィルタの設定
nRet = L_PreLoadFilters( 1, 1, TEXT("CMP"));
if(nRet != SUCCESS)
return nRet;
//====================
nRet = L_LoadBitmap (TEXT("test.jpg"), &Bitmap1, sizeof(BITMAPHANDLE), 0, ORDER_RGB, NULL, NULL);
if(nRet != SUCCESS)
return nRet;
~ 処理 ~
//====================
nRet = L_IgnoreFilters(TEXT("CMP"));
if(nRet != SUCCESS)
return nRet;
//====================