スレ間違ってたらごめんなさい。
unlha32.dllを使った圧縮処理を書いたのですが、圧縮処理中ダイアログで
中断ボタンを押した時だけ例外が出てしまいます。

問題点を絞り込むため、この処理だけを単発プロジェクト作成しました。
メインルーチンはモーダルダイアログを作成し、ボタン押下で以下の処理を走らせてみました。

  char  szCmdLine[1024], szOutput[256];

  sprintf(szCmdLine, "a -+d1 \"%s\" \"%s\\\" \"%s\"",
      "c:\\hoge.lzh",
      "c:\\hoge",
      "hage");
  if (Unlha(hParentWnd, szCmdLine, szOutput, sizeof(szOutput)) == 0) {
    MessageBox(hParentWnd, "圧縮OK", "テスト", MB_OK);
  } else {
    MessageBox(hParentWnd, "圧縮NG", "テスト", MB_OK);
  }

中断ボタンを押さなければ"圧縮OK"でその後何も問題なく処理されます。
中断ボタンを押せば"圧縮NG"が表示され、そのメッセージボックスを閉じると例外になります。

何が悪いのか見当付きません。
環境はVC++6 sp5 WindowsXPです。

叩き殺される覚悟で待っております。