Mageta Geschrieben 2. März 2005 Teilen Geschrieben 2. März 2005 Guten Tach zusammen, hätte mal ne Frage an euch. Kennt jemand einen Compiler der C / C++ in MS DOS lauffähige Programme compalieren kann? Wars eigendlich schon, aber damit ihr nicht im trockenen sitzt ^^ nochmal ne kleine Erklärung. Ich bin ja eher noch der anfänger in sachen programmieren und da befasse ich mich eher mit kleinen Sachen, so zum Beispiel wollte ich um ein wenig mit einer passwort-eingabe zu experimentieren mir ein kleines Prog bauen was ich in die autoexec.bat unter win98 schreiben kann und was dann beim systmestart nen passwort abfragt. Soll ja nich riesig groß werden. Nur mein Problem is wie gesgt eher nen Compier zu finden der mir auch für DOS nen Programm compalieren kann. Währe dankbar für eure hilfe. mfg. Mageta Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Bubble Geschrieben 2. März 2005 Teilen Geschrieben 2. März 2005 z.B. Watcom C++. Gibt es inzwischen gratis (www.openwatcom.org). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manfred.Becker Geschrieben 3. März 2005 Teilen Geschrieben 3. März 2005 Hi Mageta, den Borland Turbo C++ 1.01 Compiler gibt's gratis direkt beim Hersteller: borland Dir ist aber schon klar, dass man 'ne DOS-BOX unter Windows ganz einfach schliessen kann? Ein Passwortschutz ist somit Magulatur. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mageta Geschrieben 3. März 2005 Autor Teilen Geschrieben 3. März 2005 NENE Manfred Due verstehst mich falsch. Ich will das Programm vor windows starten. Windows98 startet doch aus einem DOS heraus, also richtig aus der alten prompt. In dem man das z.b. win eingibt kommt man ins windows (sofernman den autostart deaktiviert hat). Zu dem Zeitpunkt sind auch noch keine Windows-Sachen (treiber etc.) geladen. Also richtig DOS und da soll das Programm laufen (autoexec.bat). Und da is nichts mir abbrechen! Eine win32 DOS-BOX (eingabeaufforderung) ist nicht unter DOS lauffähig, deshalb brauch ich ein Programm was für dieses DOS Programme Compalieren kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manfred.Becker Geschrieben 3. März 2005 Teilen Geschrieben 3. März 2005 Alles klar! ich hab hier noch eine alte Eingaberoutine von mir für den Turbo C++ Compiler ausgegraben. Vielleicht hilft dir das bei deiner Entwicklung: #include <conio.h> #include <stdio.h> #include <malloc.h> #include <string.h> #include <stdlib.h> #define EINGABEINT 0 #define EINGABEFLOAT 1 #define EINGABECHAR 2 #define EINGABENORM 0 #define EINGABEHIDE 1 #define EINGABEMODAL 2 #define EINGABEZWANG 4 #define BELL 7 #define DELETE 8 #define ENTER 13 #define ESCAPE 27 typedef enum boolean{false, true}; void* Eingabe(char *text, int typ, int maxlen, int mode); int main(void) { int *i; float *f; char *c; i = (int*)Eingabe("Bitte Integer eingeben :",EINGABEINT,4,EINGABENORM); printf("Ihre Eingabe: %d\n\n",*i); free(i); f = (float*)Eingabe("Bitte Float eingeben :",EINGABEFLOAT,6,EINGABENORM); printf("Ihre Eingabe: %f\n\n",*f); free(f); c = (char*)Eingabe("Bitte String eingeben :",EINGABECHAR,20,EINGABENORM); printf("Ihre Eingabe: %s\n\n",c); free(c); c = (char*)Eingabe("Bitte Passwort eingeben :",EINGABECHAR,10,EINGABEHIDE|EINGABEMODAL|EINGABEZWANG); printf("Ihre Eingabe: %s\n\n",c); free(c); return 0; } //-------------------------------------------- // Universelle Eingabefunktion // (c)28.05.1997 by Manfred Becker // // Parameter: // text : Hinweistext zur Eingabe // typ : Typ der Eingabe : // EINGABEINT fuer Integerwert // EINGABEFLOAT fuer Float-Wert // EINGABECHAR fuer String // maxlen : Maximale Eingabelaenge // mode : Eingabemodus EINGABENORM // (geODERt) EINGABEHIDE Ausgabe von ***** // EINGABEMODAL kein Abbruch mit ESC moeglich // EINGABEZWANG keine Leereingabe moeglich // // Rueckgabe: // Eingabe bzw. NULL bei Abbruch // Achtung: Aufrufende Funktion muss // Casten und Speicher wieder // freigeben! // // Beispiel: // int *i; // i = (int*) Eingabe("Bitte Integer eingeben :", EINGABEINT, 4); // printf("Ihre Eingabe war %d\n", *i); // free(i); // //-------------------------------------------- void* Eingabe(char *text, int typ, int maxlen, int mode) { void *retWert = NULL; int *iret; // Zeiger fuer Integer float *fret; // Zeiger fuer Float char *cret; // Zeiger fuer String char puffer[128] = ""; // Interner Eingabepuffer char *pufferPtr = puffer; // Zeiger auf Puffer int taste='\0'; // Tasteneingabe char tastenPuffer[2]; // Puffer fuer Tasteneingabe boolean abbruch = false; // Abbruchbedingung if (text[0]) printf("%s",text); // Hinweistext ausgeben... if (maxlen>128) maxlen=128; // Laengenkorrektur... while(!abbruch) { // Solange Tasten einlesen bis ENTER oder Abbruch mit ESCAPE... switch(taste = getch()) { case ENTER: if (!(mode&EINGABEZWANG) || !(pufferPtr==puffer)) { printf("\n"); *pufferPtr = '\0'; abbruch = true; } break; case DELETE: if (puffer != pufferPtr) { pufferPtr--; printf("%c %c",DELETE,DELETE); } break; case ESCAPE: if (!(mode&EINGABEMODAL)) { printf("\n"); puffer[0] = '\0'; abbruch = true; } break; default: boolean eingabe=false; switch(typ) { case EINGABEINT: sprintf(tastenPuffer,"%c",taste); if ( strstr("0123456789-+",tastenPuffer) != 0) { eingabe = true; *pufferPtr = taste; if (mode&EINGABEHIDE) taste='*'; printf("%c",taste); pufferPtr++; } break; case EINGABEFLOAT: sprintf(tastenPuffer,"%c",taste); if ( strstr("0123456789-+.,",tastenPuffer) != 0) { eingabe = true; if (taste==',') taste ='.'; *pufferPtr = taste; if (mode&EINGABEHIDE) taste='*'; printf("%c",taste); pufferPtr++; } break; case EINGABECHAR: sprintf(tastenPuffer,"%c",taste); if ( strstr("0123456789-+.,:;abcdefghijklmnopqrstuvwxyz„â€ÂABCDEFGHIJKLMNOPQRSTUVWXYZŽ™š ",tastenPuffer) != 0) { eingabe = true; *pufferPtr = taste; if (mode&EINGABEHIDE) taste='*'; printf("%c",taste); pufferPtr++; } break; } if (!eingabe) printf("%c %c",BELL,8); // Alarmsignal bei falscher Eingabe if (pufferPtr-puffer > maxlen) { // Maximale Eingabel„nge erreicht... pufferPtr--; printf("%c %c",DELETE,DELETE); } } // End of switch(taste = getch()) } // End of while(taste != ENTER && taste != ESCAPE) if (pufferPtr!=puffer) { switch(typ) { case EINGABEINT: iret = (int*)malloc(sizeof(int)); *iret = atoi(puffer); retWert = iret; break; case EINGABEFLOAT: fret = (float*)malloc(sizeof(float)); *fret = atof(puffer); retWert = fret; break; case EINGABECHAR: cret = (char*)malloc((maxlen+1)*sizeof(char)); strcpy(cret,puffer); retWert = cret; break; } // End of switch(typ) } // End of if (taste != ESCAPE) return(retWert); } [/PHP] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mageta Geschrieben 4. März 2005 Autor Teilen Geschrieben 4. März 2005 Hmm, danke ich werds mir mal snsehen. Hab aber auch schon nen kleines eigens gemacht. Ich muss das endlich mal testen. mfg. Mageta Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.