シンプルQT(4.7.3)とOpenCVの(2.3.1)VS2008でのデバッグの下で実行されているアプリはメッセージで終了:QTアプリがシャットダウン時に失敗した(0xC000004B)
...
The thread 'Win32 Thread' (0x2418) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x1cc4) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0xd7c) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x2108) has exited with code 0 (0x0).
The thread 'Win32 Thread' (0x17a0) has exited with code -1073741749 (0xc000004b).
The program '[472] QtArrSurf.exe: Native' has exited with code 0 (0x0).
0xC000004Bエラーコードは(STATUS_THREAD_IS_TERMINATINGを意味します終了を開始したスレッドを中断しようとしました)。
プログラムのソースコード:コメントダイアログすべてが0xc000004bなくスムーズになり、プログラムで唯一のスレッドがある場合
#include <QtGui>
#include <opencv2/features2d/features2d.hpp>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
QPushButton b("button");
b.show();
QFileDialog::getOpenFileNames(&b, "Dialog", "", "Files(*.png)"); // problem trigger
cv::SURF detectorSURF; // just to touch opencv
return a.exec();
}
。 ダイアログが実行されるスレッドの数は、ダイアログを閉じない、生み出されています。これらのスレッドは約ある
0 > 6192 Main Thread Main Thread main Normal 0
0 8928 Worker Thread Win32 Thread 77a01f36 Normal 0
0 4620 Worker Thread Win32 Thread 77a01f36 Normal 0
0 9800 Worker Thread Win32 Thread 77a01f36 Normal 0
0 7924 Worker Thread Win32 Thread 77a0014d Normal 0
0 3844 Worker Thread Win32 Thread 77a01f36 Normal 0
0 2524 RPC Thread RPC Callback Thread 779ffd81 Normal 0
0 3068 Worker Thread Win32 Thread 77a00552 Normal 0
...
何? !!
ntdll.dllの77a01f36()
[フレームは、以下の間違ったおよび/または欠落している可能性があり、ntdll.dllのためにロードされていないシンボル] ntdll.dllの77a01f36(: は、彼らはこのように、サイレントスタックを持っています)
ntdll.dllの!77a2471e()
kernel32.dllの!7587339a()
ntdll.dllの!77a19ed2()
ntdll.dllの!77a19ea5()
の場所opencv dllのCvModule静的オブジェクトです。 OpenCVの\ 2.3.1 \モジュール\コア\ SRC \ system.cpp:
CvModule cxcore_module(&cxcore_info);
ではやる私はそのデストラクタに達するが、良いで(ダイアログなし)していない場合に失敗します。
この状況は0xC000004Bで本当に問題になりますか?
どこから解決策を探すべきですか?
ありがとうございました。
sourceforgeの公式のOpenCVバイナリを使用すると、TBBスレッドが表示されます。 –