Anfänger Fragen



  • Also ich habe erst vor ein paar tagen angefangen mit C++ zu Programmieren!

    Ich habe mal ein wenig rumgespielt un einen Kleinen Taschenrechner auf der Win32Konsolen ebene gemacht!

    Doch nun zu meinem Problem!
    Der Rechner Funktioniert so einwandfrei wenn ich ihn über Microsft Visual C++ Starte!

    Doch wenn ich die .exe Datei so anklicke bricht er zu früh ab! Warum? was habe ich da Falch gemacht?

    Und noch was:

    Die Datei ist 200kb groß! Ich finde das ist ein wenig zu groß! denn es gibt viele kleine Programme und tools die nur eine größe so um die 20kb haben was kann man da machen um die Datei zu Verkleinern?

    Und mal was allgemeines!
    Es gibt ja Verschiedene DOS anwenungen, die eine Sorte kann man per Doppelklick starten und bei den andere muss mann ers die Konsole von Winows öffnen und dann das Programm über die Laufende Konsole starten!

    Wie kann man das beeinflussen?



  • Also um zu sagen, warum dein Programm "zu früh" abbricht, müsstest du natürlich ein bisschen Code zeigen.
    Zu deinen 200k: Die größe hängt natürlich auch stark davon ab, was du da alles reinlinkst. Vielleicht hast du ein paar Sachen eingebunden, die du überhaupt nicht brauchst? Sonst gibt es exe-packer. Ich kann dir upx empfehlen.



  • Wobei das hier

    Bloody-Snake schrieb:

    Und mal was allgemeines!
    Es gibt ja Verschiedene DOS anwenungen, die eine Sorte kann man per Doppelklick starten und bei den andere muss mann ers die Konsole von Winows öffnen und dann das Programm über die Laufende Konsole starten!

    auf jeden Fall Quatsch ist. Man kann JEDE exe-Datei mit Doppelklick oder über die Konsole starten.



  • wahrscheinlich meinte er damit das man bei machen anwendungen paras übergeben muss , deshalb kann man sie nur über die console starten 🙂



  • hm? wie wärs mit ner verknüpfung, die den parametrisierten dateistart ermöglicht? das hat schon mit C&C unter windoof 95 geklappt (mit den dinosauriermissionen- einfach ne verknüpfung erstellen, die auf c&c.exe -funpark zeigt).

    vielleicht gibts ja 16bit DOS- programme, die unter 32bit windows nicht mehr funzen 🤡



  • Du hast sicher die DEBUG Konfiguration gewählt.
    Schalt um auf RELEASE, dann wird auch deinen Exe kleiner.

    Was das "frühe" Abbrechen betrifft, meinst du sicher, dass das Programmfenster nicht offenbleibt, wenn das Programm zuende ist, während in der IDE noch da steht: "Eine Taste drücken..."

    Hier ist Abhilfe:
    http://www.c-plusplus.net/forum/viewtopic.php?t=39328



  • // Taschenrechner.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include "iostream.h"
    
    int main(int argc, char* argv[])
    {
    	double zahl1, zahl2;
    	int iergeb;
    
    	cout << "		*******************************************" << endl;
    	cout << "		**Willkommen beim ******** Taschenrechner**" << endl;
    	cout << "		*******************************************" << endl;
    	cout << "" << endl;
    	cout << "Bitte geben sie dier Erste Zahl ein:" << endl;
    	cin >> zahl1;
    	cout << "" << endl;
    	cout << "Bitte geben sie die Zweite Zahl ein:" << endl;
    	cin >> zahl2;
    	cout << "" << endl;
    
    	cout << "Bitte waelen sie eine Reschenart aus:" << endl;
    	cout << "" << endl;
    	cout << "1.Fuer + Rechnungen" << endl;
    	cout << "2.Fuer - Rechnungen" << endl;
    	cout << "3.Fuer * Rechnungen" << endl;
    	cout << "4.Fuer / Rechnungen" << endl;
    	cin >> iergeb;
    
    	switch ( iergeb )
    
    	{
    	case 1:
    		cout << "Das Ergebnis ist: " <<zahl1+zahl2<< endl;
    	break;
    
    	case 2:
    		cout << "Das Ergebnis ist: " <<zahl1-zahl2<< endl;
    	break;
    
    	case 3:
    		cout << "Das Ergebnis ist: " <<zahl1*zahl2<< endl;
    	break;
    
    	case 4:
    		if ( zahl2 !=0)
    		cout << "Das Ergebnis ist: " <<zahl1/zahl2<< endl;
    		else cout << "Dividieren durch null ist nicht moeglich du penner!" << endl;
    	break;
    
    	default:
    		cout << "Davon steht da oben nichts du IDIOT!" << endl;
    	break;
    	}
    
    	return 0;
    }
    

    das ist der Komplette code!
    Wie kann ich denn auf RELEASE umstellen?



  • Also damit das Programm am Ende nicht abbricht musst du einfach am Ende (vor return 0;) ein oder zweimal (ist bie mir irgendwie unterschiedlich, manchmal reicht einmal, manchmal braucht man zwei mal)

    cin.get();
    

    einfügen, da sich das Programm sonst direkt beendet. Mit cin.get() beendet es sich erst, nachdem der Anwender eine Taste drückt.

    Wegen Release:

    Klick bei Visual c++ 6 auf erstellen und dann auf aktive konfiguration festlegen. Da kann man dann release auswählen.

    Felix



  • ok danke klappt jetzt alles wunderbar!
    Und die Datei ist jetzt nur noch 48kb groß!
    👍 👍



  • sorry doppelpost!


Anmelden zum Antworten