DJGPP, Windows



  • Hi,
    ich hab mir DJGPP geladen und alles schön installiert und schon ordentlich Code geschrieben. Nun wollte ich eine Windowsfunktion nutzen, also windows.h inkludiert und schon gefreut gleich das Ergebnis begucken zu können. Pustekuchen: Ich hab keine windows.h Datei und kann so keine Windowsfunktionen nutzen. Was kann ich nun machen, wieder einen neuen Compiler?

    Danke im Voraus

    Gruß Patrick



  • Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum Compiler-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • WinAPI forum Ankündigungen



  • afaik ist der djgpp ein GCC Port für DOS. MinGW ist ein Windows Port des GCCs und hat afaik auch eine windows.h



  • gab mal den versuch, den djgpp windows fähig zu machen..

    hier noch unter older updtes zu finden
    http://www.mathematik.uni-bielefeld.de/~rainer/

    ich rate aber ab 😉



  • Danke für eure Antworten 🙂
    Ich hab nun den MingW genommen. Ich hab nun aber noch ein Problem und zwar bräuchte ich die osfcn.h Datei. Wisst ihr wo ich eine zu MingW kompatible Version herbekomme für DJGPP hieß die Zip-Datei djdev203.zip allerdings läuft garnichts mehr, wenn ich diese mit MingW probiere.

    Ich hoffe ihr versteht was ich meine.

    Danke im Voraus

    Gruß Patrick



  • Ich hab nun so ziemlich alles probiert unds nicht zum Laufen bekommen.

    Hier das konkrete Problem: Ich wollte bison(++) und flex(++) nutzen und zwar mit dem g++. Ich habs auch zum Laufen bekommen (mit DJGPP) nur hatte ich dort keine windows.h jetzt hab ich den MingW Compiler geladen läuft alles super nur nun fehlt mir die Datei osfcn.h.

    Meine Frage: Was kann ich machen um flex(++) und bison(++) nutzen?
    Ich hätte auch noch Visual Studio 2002...

    Wäre echt toll, wenn mir jemand Tipps oder so geben kann damit ich endlich weitermachen kann.

    Danke im Voraus

    Gruß Patrick

    €dit: Hat glaube was mit libg++ zu tun, allerdings finde ich auch hier nichts für MingW. Wisst ihr weiter?



  • ok, eine ganz dumme frage:

    warum brauchst du für flex und bison die windows.h?

    wie wärs, das eine mit dem djgpp zu machen (compilerbausachen..) und eben sonstiges mit einem anderen compiler?
    bei mir laufen viele parallel, für jedes problemchen ein compiler.. 😉

    gruß



  • ps: hab grad meinen cygwin mal näher angeschaut, und er besitzt flex und bison .. und windows.
    wär dann was.. www.cygwin.com



  • Danke für deine Antwort.
    Das Problem ist ja, dass ich in dem mit bison/flex erstellten Programm eine Windows Funktion aufrufen wollte und das macht ohne windows.h Probleme.

    Wie ich das mit verschiedenen Compilern machen soll weiß ich nicht???
    Wenn das auch das Problem lösen würde hätte ich auch nichts dagegen, nur hab ich gerade keine Ahnung wie du das z.B. machst? Eine Datei mit MingW eine mit DJGPP compilieren?

    Ich schaue mir aber gerade mal cygwin an, aber das brauch doch immer eine Datei die mitgeliefert werden muss? Würde mich eigentlich stören...

    Gruß Patrick



  • schau dochmal, es gibt portierungen..
    http://www.c-worker.ch/tuts/flex-bison-visualstudio-howto.txt

    es muss also gehen.. so long 😉



  • Hi,
    ich hab das gerade mal versucht und der VC++ liefert dann sowas:

    error C2440: '=' : cannot convert from 'std::istream *' to 'istream *'
    error C2440: '=' : cannot convert from 'std::istream *' to 'istream *'
    error C2440: '=' : cannot convert from 'std::ostream *' to 'ostream *'
    error C2440: '=' : cannot convert from 'std::ostream *' to 'ostream *'
    fatal error C1083: Cannot open include file: 'osfcn.h': No such file or directory
    warning C4995: '_OLD_IOSTREAMS_ARE_DEPRECATED': name was marked as #pragma deprecated
    warning C4995: '_OLD_IOSTREAMS_ARE_DEPRECATED': name was marked as #pragma deprecated

    // Ist das falsch!?
    CParser( std::istream &is = std::cin, std::ostream &os= std::cout ) 
    {m_Program = NULL; m_scanner.yyin = &is; m_scanner.yyout = &os; }
    

    Auch hier findet er osfcn.h nicht, wobei ich nicht weiß, ob das zwingend notwendig ist, ließ ich es bei den anderen Compilern weg stürzte das Program mit einem Runtime Error ab 😞

    Schonmal Danke

    Gruß Patrick

    PS: Nutze ich vielleicht das falsche Flex/Bison? Mein Aufruf sieht so aus:
    bison++ -d -o Grammar.cpp Grammar.y
    und
    flex++ -oScanner.cpp -hScanner.h -gScanner.h Scanner.lex



  • du scheinst einen konflikt mit alten und neuen headern zu haben.

    nutze ÜBERALL iostream aus dem namensraum std, und nicht iostream.h

    ps: oder im notfall eben überall die alten header..



  • Hi,
    ich hab sowas vermutet allerdings hab ich selbst keine alte Header eingebunden, soll heißen:
    bison/flex wars 😞

    Das wird immer toller hier 😞

    Ich gucke mal, ob ich eine andere Lösung finde, denn es bringt irgenwdie alles nicht und die Datei osfcn ist auch nicht aufzufinden. Vielleicht ist es eine veraltete Version von flex und bison jedoch finde ich keine neure die läuft und C++ und keine C Datein erstellt.

    Trotzdem Danke 🙂

    Gruß


Anmelden zum Antworten