0

私はいくつかのプログラムを書きます。しかし、それらは機能していません..今、私は基本的なプログラムを持っています。コンパイルはOKです。

1>------ Build started: Project: tracker6, Configuration: Debug Win32 ------
1>  Skipping... (no relevant changes detected)
1>  trancker6.cpp
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

しかし、次に実行ボタンをクリックします。

This program is out of date:
  tracker6 - Debug Win32
Would you like to build it?

そして、私はそう言います。その後:

Unhandled exception at 0x0321ef3d in tracker6.exe: 0xC0000005: Access violation
reading location 0x00000000.

Break     Continue    Ignore

そして、続行と言いますが、うまくいきません。このエラーが再び発生します。

このコードを実行するために私を助けてください:

#include<opencv\highgui.h>
int main( int argc, char** argv ) {
    cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
    CvCapture* capture = cvCreateFileCapture( argv[1] );
    IplImage* frame;
    while(1) {
        frame = cvQueryFrame( capture );
        if( !frame ) break;
        cvShowImage( "Example2", frame );
        char c = cvWaitKey(33);
        if( c == 27 ) break;
    }
    cvReleaseCapture( &capture );
    cvDestroyWindow( "Example2" );
}
4

2 に答える 2

0

「Mycrosoft Symbols Server」のデバッグ - >オプションと設定 - >シンボルを確認してから試してください

于 2013-10-12T17:42:08.297 に答える
0

問題は、あなたのプログラムがコマンドライン引数を期待している (それがargv[1]意味することです) が、あなたがそれを提供していないことです。したがって、プログラムがクラッシュします。

コマンドライン引数はファイル名を意味していると思います。

おそらく、このプログラムの目的はわかっているはずですが、ファイル名を指定せずに実行できると思ったのはなぜですか?

実行したい場合は、最初にコマンドライン引数への参照をハードコーディングされたファイル名に置き換えることを試みます。すなわち交換

CvCapture* capture = cvCreateFileCapture( argv[1] );

CvCapture* capture = cvCreateFileCapture( "somefile" );

編集:

どうやらこれはビデオ ストリーミング プログラムなので、「somefile」をストリーミングしようとしているビデオを含むファイルの名前に置き換えてください。

于 2013-10-12T15:25:23.363 に答える