Kann eine ausführbare Datei sowohl eine Konsolen- als auch eine GUI-Anwendung sein?
Erstellen eines C#-Programms, das sich sowohl als Befehlszeilenschnittstelle (CLI) verhält ) und eine Anwendung mit grafischer Benutzeroberfläche (GUI), die auf bereitgestellten Flags basiert, ist nicht direkt machbar.
Grund:
Wie Raymond Chen in seinem Blog erklärt, benötigt das Betriebssystem vor der Ausführung Informationen über das Subsystem des Programms. Diese Entscheidung kann nach dem Start des Programms nicht mehr geändert werden.
Alternative Ansätze:
Während die direkte Implementierung einer ausführbaren Dual-Mode-Datei nicht möglich ist, gibt es dafür mehrere Techniken ähnliche Funktionalität erreichen:
1. Separate Binärdateien:
Übernehmen Sie den von „devenv“ verwendeten Ansatz. Erstellen Sie zwei separate Binärdateien: eine mit der Erweiterung „.exe“ für die GUI und eine mit der Erweiterung „.com“ für die Konsole. Dadurch wird die Priorität von Win32 für „com“-Dateien ausgenutzt, wenn keine Erweiterung angegeben wird.
2. Neustarttechnik (von „ildasm“ verwendet):
Auswirkungen:
Welcher Ansatz bevorzugt wird, es gelten die folgenden Einschränkungen anwenden:
Schlussfolgerung:
Obwohl es nicht möglich ist, eine ausführbare Datei zu haben, die gleichzeitig als Konsole und GUI-Anwendung fungiert, bieten die oben genannten Techniken eine gute Lösung Annäherungen, wobei die Auswahl auf die gewünschten Kompromisse zugeschnitten wird.
Das obige ist der detaillierte Inhalt vonKann eine einzelne ausführbare Datei sowohl als Konsole als auch als GUI-Anwendung dienen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!