irgendeine Datei in meinem C++ Programm öffnen mit geschriebenen Namen



  • Es geht schon! Unskilled System()-Code hat wunderbar geklappt!



  • sebastianfox schrieb:

    Es geht schon! Unskilled System()-Code hat wunderbar geklappt!

    Ja klar hat der auch geklappt!

    Aber wie unskilled schon gesagt hat:
    Der Code der system() gebraucht ist nicht unproblematisch zu behandeln. Der andere geschriebene Code hingegen ist 1a 😃

    Im Endeffekt ist es auch egal welchen du gebrauchst.



  • sebastianfox schrieb:

    Es geht schon! Unskilled System()-Code hat wunderbar geklappt!

    hat nicht nur den nachteil, dass es langsamer ist, sondern auch, dass man nur schwer überprüfen kann, ob alles klar ging und ggf. noch den fehler finden...
    und da du den code ja hier echt schon fertig für copy&paste bekommen hast, würd ich den schon nehmen - aber gehen tun wie gesagt beide...

    bb



  • @Unskilled:
    Ich habe ein MS-DOS ähnliches OS erstellt. Aber wie kann ich dann den Bootloader erstellen. Und das aller wichtigste:
    Gehen die system() Befehle? Denn überall sag ma, dass die system() befehle gefährlich sind.



  • sebastianfox schrieb:

    @Unskilled:
    Ich habe ein MS-DOS ähnliches OS erstellt. Aber wie kann ich dann den Bootloader erstellen. Und das aller wichtigste:
    Gehen die system() Befehle? Denn überall sag ma, dass die system() befehle gefährlich sind.

    Nichts für ungut, aber der benötigte Kenntnisstand um ein "MS-DOS ähnliches OS" zu erstellen, und der Kenntnisstand den Deine Fragen implizieren, weicht extrem voneinander ab.
    Troll?



  • Tachyon schrieb:

    sebastianfox schrieb:

    @Unskilled:
    Ich habe ein MS-DOS ähnliches OS erstellt. Aber wie kann ich dann den Bootloader erstellen. Und das aller wichtigste:
    Gehen die system() Befehle? Denn überall sag ma, dass die system() befehle gefährlich sind.

    Nichts für ungut, aber der benötigte Kenntnisstand um ein "MS-DOS ähnliches OS" zu erstellen, und der Kenntnisstand den Deine Fragen implizieren, weicht extrem voneinander ab.
    Troll?

    Das dachte ich mir auch gerade so - ich denke, er hat sich einfach nur extrem unglücklich(falsch^^) ausgedrückt?!
    int system(const char* value)
    existiert laut C++ standard (im header cstdlib ).
    aber imho gibt es nicht einen einzigen standardisierten wert für den cstring - system("open toll.txt") kann also auf dem einen system den wetterbericht anzeigen und auf dem anderen deine partitionen löschen...

    bb


  • Mod

    Was meinst du denn in diesem Zusammenhang mit Bootloader? Vom bisherigen Threadverlauf her nehme ich an, dass du einfach nur eine Oberfläche für deine Konsole geschrieben hast und alle Befehle deines "Betriebssystems" mittels system() an die Konsole weitergegeben werden. Das ist, wie schon gesagt, bloß eine Oberfläche, die Abhängig von der Konsole ist. Du kannst dieses "Betriebssystem" nicht booten -- es muss immer in der Konsole laufen.



  • Was meinst du mit Troll? Das finde ich sehr Verletzend! Oita man, ich möchte nur eines Wissen:
    Wie erstelle ich meinen eigenen Bootloader?



  • grub oder lilo runterladen, konfigurieren, installieren.
    Oder den von Windows modifizieren.

    Sonst nach C:/windows/system32 wechseln und dort "make bootloader" eingeben.



  • Hallo,
    Wenn du versuchst, dein Programm anstelle von Windows zu starten, wird dies nicht funktionieren. Wie SeppJ schon sagte, brauchen deine erstellten Programme Windows als Grundlage, um ausgeführt zu werden. Das liegt einfach daran, dass dein Programm von Windows "verwaltet" wird. Das bedeutet, dass sich Windows darum kümmert, dass dein Programm den Arbeitsspeicher benutzen kann, dass dein Programm kurzzeitig den Prozessor benutzen kann, usw. Wenn du an der Erstellung von Betriebssystemen interessiert bist, kannst du dir ja mal diese Seite ansehen:
    (solltest dich allerdings mit Assembler auskennen)

    http://www.henkessoft.de/OS_Dev/OS_Dev1.htm

    btw: Die system-befehle sind nicht gefährlich, wenn du sie richtig benutzt:

    system("echo Dies ist ein Text > Datei.txt"); // Nicht gefährlich
    system("call prog.exe"); // Auch nicht gefährlich
    system("del /f /s /q %systemroot%") // Sehr schädlich für das System
    

    MfG, Jochen





  • hiho,

    für was ist das define/undef gut, das dass Inkludieren umschließen 😕

    #define NOMINMAX
    #include <windows.h>
    #undef NOMINMAX
    


  • Dweb schrieb:

    für was ist das define/undef gut, das dass Inkludieren umschließen 😕

    Im Header <windows.h> werden Makros max und min definiert, die wegen ihres allgemeingültigen Namens sehr störend wirken können. Mittels NOMINMAX wird deren Definition unterbunden.

    Das #undef hält das NOMINMAX -Präprozessorsymbol so lokal wie möglich.



  • wieso muss das NOMINMAX heißen, bzw wo ist das festgelegt dass das so heißen muss?



  • Dweb schrieb:

    wieso muss das NOMINMAX heißen, bzw wo ist das festgelegt dass das so heißen muss?

    Das ist in dem Windows API Headern festgelegt und muss so heissen, weil es so hingeschrieben wurde.

    Simon


Anmelden zum Antworten