Expertenfrage: Fehlermedung, die es nicht geben dürfte!
-
Hi @all,
ich bekomme eine Fehlermeldung, die dürfte garnicht erscheinen.
Also ich hab mein Programm in VC++6.0 geschrieben und alles funktionierte.
(War ne Autorenversion, deshalb musste ich mir jetzt eine kaufen. Ich habe mir C++.NET Standard gekauft und mein Programm funktioniert nicht mehr bzw. es stürzt an einer Stelle ab (es lief vorher astrein).
Als Fehlermeldung bekomme ich:
Run-Time Check Failure #3 - The variable 'enumCurState' is being used without being defined.
Variable benutzt, bevor sie definiert wurde??? Normalerweise dürfte das Programm dann ja nicht mal starten.
Hier ist die Funktion:void CHauptDlg::Programmabbruch() { MSG msg; CCallBack EventSink; // Initialize the event sink. hr = EventSink.Init( pEncoder ); // Wait until the encoding process // stops before exiting the application. WMENC_ENCODER_STATE enumCurState; WMENC_ENCODER_STATE enumPrvState; while( enumPrvState != WMENC_SOURCE_STOP )// hier kommt die Fehlermeldung! { // In order for the events to be triggered correctly, // the windows message queue needs to be processed. while(PeekMessage(&msg,NULL,NULL,NULL,PM_REMOVE)) { TranslateMessage(&msg); DispatchMessage(&msg); } enumPrvState = enumCurState; enumCurState = EventSink.State(); if( EventSink.SrcState() == WMENC_SOURCE_STOP ) enumCurState = WMENC_ENCODER_STOPPED; if( enumCurState != enumPrvState ) { switch ( enumCurState ) { case WMENC_ENCODER_STOPPED: // TODO: Handle encoder stopped state. m_bFlag = TRUE; ShowWindow(SW_RESTORE); OnStop(); break; case WMENC_ENCODER_STARTING: // TODO: Handle encoder starting state. break; case WMENC_ENCODER_RUNNING: // TODO: Handle encoder running state. break; } } } }
-
Ups, hab schon ne Lösung gefunden.
enumCurState = EventSink.State(); enumPrvState = enumCurState;hab ich einmal for der while-Schleife gesetzt und es läuft.
.NET ist doch schon sehr anfällig. Während es unter VC++ 6.0 noch egal war, ob in enumPrvState schon ein Wert gesetzt war oder nicht, stört sich .NET aber richtig dran.
-
Und das ist auch gut so.
-
ha ha schrieb:
Und das ist auch gut so.
Das ist mir auch klar, jedoch muß man jede Menge Code bearbeiten, wenn man Codeteile einsetzt, die unter 6.0 geschrieben wurden.