Finde den fehler nicht...

Diskutiere Finde den fehler nicht... im Developer Network Forum im Bereich Hardware & Software Forum; also ich wollte ein tool schreiben dass bei jedem hochfahren von der registry/run ausgeführt wird. dieses programm sollte in einer datei die...
  • Finde den fehler nicht... Beitrag #1
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
also ich wollte ein tool schreiben dass bei jedem hochfahren von der registry/run ausgeführt wird.

dieses programm sollte in einer datei die aktuelle zahl der startups mitzählen und wenn die höher als der wert ist der in einer anderen datei steht, eine andere .exe datei aufrufen, die fragt ob chkdsk und defrag ausgeführt werden sollen...

Code:

#include <windows.h>
#include <tchar.h>
#include <fstream>

using namespace std;

int main(void)
{
int startups_number, every_x_startups, exit;
//variablen



goto read; //gehe zu read:
//-----------------------------------------------------------------------
read:
ifstream startups1 ("startups.sys", ios::in); //öffnet startups.sys zum lesen
if (!startups1)
{
startups1.close(); //wenn falsche datei, datei schließen, gehe zu read:
goto read;
}

else if (startups1) //wenn richtige datei
{
startups1 >> startups_number; //lies inhalt aus, speichere ihn in startups_number
startups1.close(); //wenn es geklapt hat, datei schließen
}
goto open; //gehe zu open:

//------------------------------------------------------------------------
open:
ofstream startups2 ("startups.sys", ios::trunc); //öffnet startup.sys zum über-schreiben
if (!startups2)
{
startups2.close(); //wenn falsche datei, datei schließen ,gehe zu open:
goto open;
}

else if (startups2) //wenn richtige datei
{
startups_number++; //startups + 1
startups2 << startups_number; //schreibe in datei neue startups anzahl
startups2.close(); //datei schließen
}
goto read2; //gehe zu read2:

//----------------------------------------------------------------------------------------

read2:
ifstream every1 ("every.sys", ios::in); //öffnet every.sys zum lesen
if (!every1)
{
every1.close(); //wenn falsche dateim schließe datei, gehe zu open2:
goto open2;
}
else if (every1) //wenn richtige datei
{
every1 >> every_x_startups; //lese inhalt aus
every1.close(); //datei schließen
}
if (exit != 1)
{
goto execute; //wenn exit != 1 gehe zu execute:
}

else if (exit = 1)
{
system("exit"); //sonst exit
}

//-------------------------------------------------------------------------------
open2:
ofstream every2 ("every.sys", ios::trunc); //öffnet every.sys zum über-schreiben
if (!every2)
{
every2.close(); //wenn falsche datei...
goto read2; //...gehe zu read2:
}
else if (every2) //wenn richtige datei
{
every2 << every_x_startups; //schreibe every-x_startups hinein
every2.close(); //schließen
}
goto execute; //gehe zu execute

//-------------------------------------------------------------------------------

execute:
if (startups_number < 1)
{
startups_number = 0;
goto open;
}

//Wenn startups < als 1 schreibe 1 hinein.

else if (every_x_startups <1)
{
every_x_startups= 10;
goto open2;
}
//wenn every_x-startups < als 1 schreibe 10 hinein

else if (startups_number < every_x_startups)
{
system("exit");
}

else if (startups_number >= every_x_startups)
{
system("start bwUnin-6.1.4.61-8876480L20082881822.exe");
startups_number=0;
exit=1;
goto open;
}
//wenn aber großer dann starte bwUnin....exe

}



Und jetzt kommen die errors:

(89) : error C2362: Initialisierung von 'every2' durch 'goto execute' übersprungen
(74): Siehe Deklaration von 'every2'
(89): Siehe Deklaration von 'execute'



Bitte um aufklährung wass ich falsch mache

Esgeht hier nur um die datei die mitzählt, registry eintrag existiert und die andere .exe auch!

startups.sys existiert genau so wie alle anderen verwendeten dateien
 
Zuletzt bearbeitet:
  • Finde den fehler nicht... Beitrag #2
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
sorry wegen dem vielen code!

Aber bitte helft mir!!!!!
 
  • Finde den fehler nicht... Beitrag #3
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Da wird dir so schnell keiner helfen wollen, weil der ganze Code absolut unübersichtlich ist. goto-Anweisungen sind seit ungefähr fünfzehn Jahren "verboten"! Und zwar genau aus dem Grund, weil der Code dadurch schlampig und unübersichtlich wird.
Die Fehlermeldung kann ich aus diesem Grund so auf die Schnelle auch nicht nachvollziehen, aber vermutlich gibt es irgendeine Möglichkeit von Sprüngen in deinem Programm, dass every2 verwendet wird, ohne dass die Deklaration vorher ausgeführt wird.
Noch ein kleiner Tipp: Programme beendet man durch ein return 0; in der main(...), nicht mit system("exit").
 
  • Finde den fehler nicht... Beitrag #4
Max11.111

Max11.111

Bekanntes Mitglied
Dabei seit
12.06.2008
Beiträge
2.416
Reaktionspunkte
0
Da wird dir so schnell keiner helfen wollen, weil der ganze Code absolut unübersichtlich ist. goto-Anweisungen sind seit ungefähr fünfzehn Jahren "verboten"! Und zwar genau aus dem Grund, weil der Code dadurch schlampig und unübersichtlich wird.
Die Fehlermeldung kann ich aus diesem Grund so auf die Schnelle auch nicht nachvollziehen, aber vermutlich gibt es irgendeine Möglichkeit von Sprüngen in deinem Programm, dass every2 verwendet wird, ohne dass die Deklaration vorher ausgeführt wird.
Noch ein kleiner Tipp: Programme beendet man durch ein return 0; in der main(...), nicht mit system("exit").

Okay...

goto wird also sofort durch funktionen ersetzt!:ja:

und return 0; jawohl chef!:goil:

sorry wegen dem vielen code:no:
 
Thema:

Finde den fehler nicht...

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben