Zum Inhalt springen

MS DOS - compiler?


Mageta

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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]

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...