1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C/C++: Projekt sowohl Command line als auch GUI

    • Frage
  • MaxAuthority
  • 3. April 2003 um 16:31
  • Unerledigt
  • MaxAuthority
    17
    MaxAuthority
    Gewinner des Desktop-Contest 2002
    Reaktionen
    5
    Punkte
    3.165
    Beiträge
    626
    • 3. April 2003 um 16:31
    • #1

    Ich hab ein Programm in C unter Windows, das mir viele alttägliche arbeiten automatisiert.
    Jetzt hab ich es aber (mit gcc 3.2) als Windows-Projekt ohne Fenster/Dialog konzipiert, damit mir nicht immer eine Konsole aufpoppt, wenn ich das programm starte. Es gibt in Dev-C++ zwar eine Option "don't create console window", wenn ich es als Kommandozeilen Programm compiliere, aber irgendwie klappt die nicht.

    jetzt würd ich aber gerne auch die option haben, wenn ich das programm von der kommandozeile aufrufe, dass ich printf() und scanf() machen kann, aber das geht nur wenn ich es als Command Line programm erstelle.

    hmm, hat irgendwer eine einfach lösung um das Aufpoppen der Kommandozeile zu verhindern, ohne bei jeder änderung immer manuell die optionen umstellen zu müssen, und einmal ein Windows-Programm und einmal ein CommandLine-Programm zu erstellen? Vielleicht irgendwelche Preprocessor commands?

    http://vimperator.org - Make Firefox behave like Vim

  • Irrlicht
    7
    Irrlicht
    Mitglied
    Reaktionen
    1
    Punkte
    421
    Beiträge
    82
    • 3. April 2003 um 17:15
    • #2

    Du kannst ein normales Windows-Programm machen und in der WinMain einfach kein Fenster anlegen. Printf und scanf sollte da auch gehen, wenn du die stdio.h einbindest.

    das irrlicht

  • MaxAuthority
    17
    MaxAuthority
    Gewinner des Desktop-Contest 2002
    Reaktionen
    5
    Punkte
    3.165
    Beiträge
    626
    • 3. April 2003 um 17:27
    • #3
    Zitat von Irrlicht

    Du kannst ein normales Windows-Programm machen und in der WinMain einfach kein Fenster anlegen. Printf und scanf sollte da auch gehen, wenn du die stdio.h einbindest.

    Danke, für die Antwort, aber eben leider nicht, weil die ganzen consolen sachen dann auch nicht initialisiert werden.


    Ich habs jetzt einfach mal ganz arg hingepfuscht, und folgendes gemacht:
    --------
    char buffer[256];
    int hCrtIn, hCrtOut;
    FILE *conIn, *conOut;

    AllocConsole();
    hCrtIn = _open_osfhandle ((long) GetStdHandle(STD_INPUT_HANDLE), _O_TEXT);
    hCrtOut = _open_osfhandle ((long) GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
    conIn = _fdopen( hCrtIn, "r" );
    conOut = _fdopen( hCrtOut, "w" );
    *stdin = *conIn;
    *stdout = *conOut;
    fgets (buffer, 256, stdin);
    fprintf (stdout, buffer);
    system("PAUSE");
    FreeConsole();
    ------------

    ich erstell einfach ein WindowsProjekt, und wenn ich jetzt consolen output und input brauche, öffne ich mit AllocConsole() einfach eine neu console, und hol mir über low-level C-Funktionen die handles.
    funktioniert bis jetzt einwandfrei, außder dass ich auch eine neue console erstelle, wenn ich das programm schon von der command line aufrufe, aber es gibt (seit XP) auch noch einen AttachConsole() befehl, werd mich mal mit dem ein bisschen spielen....

    und da sagen die leute, Windows wäre nicht für die CLI ausgelegt - geht doch eh alles :)

    http://vimperator.org - Make Firefox behave like Vim

  • Maximilian Rupp 27. Dezember 2024 um 12:08

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 2 Besucher

Rechtliches

Impressum

Datenschutzerklärung