eigener editor --> compilieren



  • ndw schrieb:

    Ja, das habe ich, aber es geht mir hier eigentlich nur darum, wie ich eben den Compiler mit den Argumenten aufrufen kann.

    ist ja dann nicht mehr relevant wenn du ein makefile hast?!

    plattformübergreifend (ausm standard? bin nicht sicher..): system(...)
    windows: ShellExecute(...)
    oder jeweils andere platform-/betriebssystemspezifische funktionen zum öffnen von prozessen wie OpenProcess oder äquivalente unter unix



  • Willst du einen Editor schreiben oder gleich eine ganze IDE?



  • Danke schonmal für die Antworten, aber die helfen mir nicht wirklich weiter.

    Das Programm Code::Blocks wurde doch auch in c++ geschrieben. Wie wird das dort realisiert?



  • Bei CreateProcess oder ShellExecute(Ex) aus der WinAPI kannst du Parameter mit angeben.



  • ndw schrieb:

    Das Programm Code::Blocks wurde doch auch in c++ geschrieben. Wie wird das dort realisiert?

    Das musst du entweder deren Entwickler fragen oder den Source-Code lesen, ist ja open source. http://www.codeblocks.org/downloads/7



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Der Thread wurde jetzt leider in die WinApi verschoben.

    Denn ich wollte noch dazu sagen, dass ich in Qt programmiere, und mich somit nicht in der WinApi auskenne. (Ich beschäftige mich auch noch nicht so lange mit C++)

    Aber wenn es nicht anders geht:
    Könnte hier vielleicht jemand ein kurzes Beispiel schreiben, wie man mit der funktion ShellExecute() realisiert, dass die Eingabeaufforderung gestartet wird, dann in einen bestimmten Ordner navigiert und schließlich ein Programm mit Argumenten startet.

    Ich hab's schon versucht, aber ich schaffe es einfach nicht.

    Sollte dieses Programm nicht zu aufwändig sein, wäre ich euch sehr dankbar! (natürlich nur, wenn ihr das Beispiel auch schreibt 😃 )



  • Wenn Du hier in der Suche ShellExecute eintippselst wirst Du erschlagen 😉

    ShellExecute( NULL, "open", "cmd.exe", NULL, NULL, NULL );
    

    ^das wird Dir sicherlich kaum weiterhelfen daher lies es dir am besten einfach in der MSDN durch.



  • Danke!

    Allerdings lassen sich bei mir die Beispiele hier gar nicht compilieren.
    Ich erhalte bei folgendem:

    ShellExecute(NULL, "open", "http://www.skre.de/cpp",NULL,NULL,SW_SHOWDEFAULT);

    die Fehlermeldung:

    editor.cpp: In member function void editor::compile()': editor.cpp:37: error: cannot convert \const char*' to `const WCHAR*' for argumen
    t `2' to `HINSTANCE__* ShellExecuteW(HWND__, const WCHAR, const WCHAR*, const
    WCHAR*, const WCHAR*, INT)'
    editor.cpp:38: error: cannot convert `const char*' to `const WCHAR*' for argumen
    t `2' to `HINSTANCE__* ShellExecuteW(HWND__, const WCHAR, const WCHAR*, const
    WCHAR*, const WCHAR*, INT)'
    mingw32-make[1]: *** [release/editor.o] Error 1
    mingw32-make[1]: Leaving directory `C:...´
    mingw32-make: *** [release] Error 2

    Wenn ich das ganze aber als einzelne main-Datei compiliere, funktioniert es problemlos.



  • Dein Projekt ist auf Unicode eingestellt, entweder du stellst auf MultiByte oder du setzt ein L vor jede Zeichenkette, also L"open" .



  • Super! Es funktioniert! 👍


Anmelden zum Antworten