Problem Qt GUI oder Console je nach Aufruf starten
Verfasst: 1. Mai 2007 21:45
Hi,
ich möchte ganz gerne mein Programm je nach Aufrufparameter, wahlweise als Konsolen Applikation oder als GUI Applikation starten. Ist das prinzipiell überhaupt möglich?
Also wenn man die executable so startet soll die GUI gezeigt werden. Startet man hingegen z.b. executable.exe console soll nur die console gezeigt werden. Soweit funktioniert es auch, nur bekomme ich jedesmal eine Speicherverletzung bei der consolen Variante und mir ist nicht klar warum...
---------------------------
executable.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x0040b9e1" verweist auf Speicher in "0x0000001c". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.
Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Mein Code sieht prinzipiell so aus:
main.cpp
Habe ich vielleicht etwas nicht beachtet, oder gehts prinzipiell nicht?
ich möchte ganz gerne mein Programm je nach Aufrufparameter, wahlweise als Konsolen Applikation oder als GUI Applikation starten. Ist das prinzipiell überhaupt möglich?
Also wenn man die executable so startet soll die GUI gezeigt werden. Startet man hingegen z.b. executable.exe console soll nur die console gezeigt werden. Soweit funktioniert es auch, nur bekomme ich jedesmal eine Speicherverletzung bei der consolen Variante und mir ist nicht klar warum...
---------------------------
executable.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x0040b9e1" verweist auf Speicher in "0x0000001c". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.
Klicken Sie auf "OK", um das Programm zu beenden.
Klicken Sie auf "Abbrechen", um das Programm zu debuggen.
---------------------------
OK Abbrechen
---------------------------
Mein Code sieht prinzipiell so aus:
main.cpp
Code: Alles auswählen
int main(int argc, char *argv[])
{
bool console = false;
for (int i = 1; i < argc; i++)
{
if (strcmp(argv[i], "console") == 0)
{
console = true;
}
}
if (console)
{
Blubb::blah();
return 0;
}
else
{
QApplication app(argc, argv);
Dialog dialog = new Dialog();
return app.exec();
}
}