Seite 2 von 3

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 26.07.2011 17:08
von AND51
Hättest du mal die Hilfe genauer studiert!
In der Hilfe ist davon die Rede, dass bei Auswahl der Kompiler-Option "Console" automatisch ein Konsolenfenster geöffnet wird!

Siehe Kompilieren Ihres Programms:
Console : ein Executable mit der Standard-Konsole. Dieses kann trotzdem Fenster usw. öffnen, hat jedoch stets ein Konsolenfenster geöffnet. Bei der Ausführung über die Eingabeaufforderung verwendet dieser Executable-Typ die Eingabeaufforderung als seine Konsole und schreibt dort hinein, während das "Windows"-Executable bei der Verwendung von OpenConsole() ein separates Konsolenfenster erstellt. Diese Einstellung muss zum Erstellen von Konsolen-Anwendungen verwendet werden, deren Eingabe/Ausgabe mittels Pipes umgeleitet werden kann.

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 26.07.2011 17:58
von Velz
aha... hm... sorry! Und wo liegt da der kausale Zusammenhang zum Fehler?

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 27.07.2011 16:22
von AND51
Du musstest erst selbst durch langwierige und intensive Tests rausfinden, dass dein Programm auch ohne OpenConsole() funktioniert.
Doch warum? Wie kann ich bitteschön Print() benutzen, wenn ich gar keine Console habe?

Ganz einfach: Wählst du in den Kompileroptionen die Option "Console", dann wird beim Programmstart automatisch eine Konsole geöffnet. So steht es in der Hilfe, die ich zitiert und verlinkt habe.

Das solllte kein Meckern sein, ich wollte nur aufzeigen, dass du dir ein paar Stunden Ärgereien hättest sparen können, wenn du den Hinweis in der Hilfe entdeckt hättest. :allright:

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 27.07.2011 19:12
von Velz
Da hast du recht! Da ich aber vermutlich erst mal bei OpenConsole in der Hilfe nachgesehen hätte... wäre das Ergebnis völlig anders... aber das ist ja auch vollkommen egal.. es läuft und ich werde das nie mehr vergessen! Mit etwas Glück wird der nächste der das Prob hat, das hier finden!

Die einzige Frage die bleibt!!! Ist es ein Bug oder ein Feature??

Sollte man das als Bug posten?
1. in älteren PB Versionen besteht das Prob nicht
2. Es ist untypisch, dass man ein Consolenprogramm unter Linux nicht in den Hintergrund schieben kann
3. die Hilfe ist irreführend: Bei OpenConsole steht, dass man vor dem Aufruf jeden anderen Befehls aus der Bibliothek z.B. PrintN auf jeden Fall OpenConsole aufrufen muss!

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 28.07.2011 22:15
von AND51
Meiner Meinung nach ist es kein Bug.

Im Normalfall muss man OpenConsole() ausführen, um mit Print() schreiben zu können, ja. Doch das gilt nur für "normale" Executables.
"Konsolenprogramme" sind keine "normalen Executables". Das ist eine Ausnahme. Konsolenprogramme, und das kennst du ja von Linux, haben drei Standardkanäle: STDIN/STDOUT/STERR. Diese hat jedes Programm. Immer. Deswegen wird beim umschalten von "Executable" auf "Console" automatisch eine Konsole geöffnet, und man kann mit Print() schreiben, obwohl man nicht ausdrücklich OpenConsole() aufgerufen hat. Das Benutzen von OpenConsole() in einem "Console"-Programm öffnet ja sozusagen zu den 3 Standardkanälen einen weiteren Kanal. Wo soll Print() da noch schreiben? Auf STDOUT? Oder auf die zusätzliche Konsole? Das war vermutlich der Grund, wieso dein Programm zuerst nicht ging.

Dies ist nur eine Problembeschreibung. Ob das technisch stimmt, weiß ich nicht, denn ich habe es dir so beschrieben, wie ich mir das vorstelle. Hier müssten vielleicht mal die Entwickler oder die richtigen Experten ein Wort zu sagen. Ich gebe dir allerdings Recht, es ist in der Hilfe widersprüchlich beschrieben.

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 28.07.2011 22:25
von ts-soft
OpenConsole oder Compileroption Console bewirken beide, das u.a. die Console Lib hinzugelinkt wird.
Ohne OpenConsole wäre es nicht möglich in einer GUI-Anwendung eine Consolen-Ausgabe zu bewerkstelligen.

Eine richtige Console enthält weder OpenConsole noch EnableGraphicalConsole als Befehle.

Das ganze in der Hilfe korrekt zu formulieren, überlasse ich dann lieber den Profis :mrgreen:

Gruß
Thomas

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 29.07.2011 00:41
von Velz
ok..! Also doch ein Feature!

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 29.07.2011 05:49
von ts-soft
Gilt so aber nicht für Windows, das benötigt OpenConsole() :mrgreen:

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 29.07.2011 10:38
von Velz
Hallo ts-soft, ich bleibe dabei, dass es ein Fehler ist. Ich kenne kein Linuxprogramm, das auf der Console etwas anderes macht als im Hintergrund.

Aber da PB Linux schlimmere Fehler hat... sei's drum.

Wie ich sehe hast du auch Ubuntu 11.4... bei mir verabschiedet sich gelegentlich die IDE, meist nach dem Datei-öffnen Dialog. Hast du das auch?

Re: PB Programm wird im Hintergrund angehalten (gelöst)

Verfasst: 29.07.2011 11:31
von ts-soft
Velz hat geschrieben:Hallo ts-soft, ich bleibe dabei, dass es ein Fehler ist. Ich kenne kein Linuxprogramm, das auf der Console etwas anderes macht als im Hintergrund.
Ist kein Bug, ist eine Einschränkung bedingt durch die Unterschiede der verwendeten Betriebssysteme. Die bekommt
man leider nicht immer auf einen Nenner. Console unter Linux unterscheidet sich schon erheblich von der unter Windows.
Velz hat geschrieben: Wie ich sehe hast du auch Ubuntu 11.4... bei mir verabschiedet sich gelegentlich die IDE, meist nach dem Datei-öffnen Dialog. Hast du das auch?
Ja, das wurde aber bereits im engl. Bug-Forum gemeldet.