Visual Studio, Post-Build, Kommandozeile verhindern

Verschiedenes zu Qt
Antworten
KeineAhnung78
Beiträge: 6
Registriert: 26. Mai 2006 14:42

Visual Studio, Post-Build, Kommandozeile verhindern

Beitrag von KeineAhnung78 »

Hallo Forum,

ich würde gerne die Kommandozeile beim Ausführen eine Programms verhindern. Dazu gab es hier in einem anderen Thread folgenden Tipp:

Post-Build-Event

editbin /subsystem:window $(OutDir)\$(TargetFileName)

Das macht mein Linker allerdings nicht mit:

EDITBIN : fatal error LNK1117: syntax error in option 'subsystem:window'

Sehe ich das richtig, dass das Event eingetragen werden soll unter Project->Properties->Configuration Properties->Build Events->Post-Build Events->Command Line ???

Vielen Dank.

Gibt es eine Alternative, um eine reine Windowsanwendung mit Qt zu erstellen?

Wenn ich den Einstiegspunkt ändere auf

Code: Alles auswählen

int WINAPI WinMain(...) {}
ist mir ja noch nicht geholfen, denn

Code: Alles auswählen

QApplication app( argc, argv );
braucht ja die Argumente der Kommandozeile...

Ganz so einfach scheint es ja dann nicht zu funktionieren.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Schau mal hier: http://doc.trolltech.com/4.1/qmake-vari ... tml#config

[ocde]
windows The target is a Win32 window application (app only). The proper include paths,compiler flags and libraries will automatically be added to the project.
console The target is a Win32 console application (app only). The proper include paths, compiler flags and libraries will automatically be added to the project.
[/code]

Ausserdemkann man es auch einfach in den Linkeroptionen für das Project einstellen (Linker->System->SubSystem)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
KeineAhnung78
Beiträge: 6
Registriert: 26. Mai 2006 14:42

Beitrag von KeineAhnung78 »

Sorry, bin doch ein wenig zu blöd :oops:

Wenn ich folgendes Prgrämmchen fehlerfrei kompilieren kann und dann statt CONSOLE als Subsystem WINDOWS wähle erhalte ich folgenden Fehler.

Code: Alles auswählen

#include <qt/qapplication.h>
#include <qt/qpushbutton.h>

int main( int argc, char* argv[])
{
	QApplication app( argc, argv );

	QPushButton helloworld( "Hello World", 0 );
	helloworld.resize( 100,30 );

	QObject::connect(&helloworld, SIGNAL(clicked()), &app, SLOT(quit()));

	helloworld.show();

	return app.exec();
}
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: unresolved external symbol _WinMain@16 referenced in function ___tmainCRTStartup
1>F:\Programmierung\qttest\Debug\qttest.exe : fatal error LNK1120: 1 unresolved externals


Ehrlich gesagt verstehe ich auch gar nicht, warum das so einfach funktionieren sollte, aber naja...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

WinMain ist in qtmain(d).lib (qt4) bzw. qtmain.lib definiert und wird eigentlich von qmake automatisch zu den benötigten libs hinzugefügt
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
KeineAhnung78
Beiträge: 6
Registriert: 26. Mai 2006 14:42

Beitrag von KeineAhnung78 »

Hehe, Wunder gibt es immer wieder. Die Firma dankt :wink:
Methedrine
Beiträge: 7
Registriert: 15. April 2006 13:19
Kontaktdaten:

Re: Visual Studio, Post-Build, Kommandozeile verhindern

Beitrag von Methedrine »

Ich hab mir das ganze auch einmal zu Gemüte geführt.

Außerdem muss es so lauten:

Code: Alles auswählen

editbin /subsystem:windows $(OutDir)\$(TargetFileName) 
Wie du siehst, windows und nicht window.

EDIT: Link entfernt, da Seite nicht mehr existiert.
Antworten