Seite 1 von 1

Visual Studio, Post-Build, Kommandozeile verhindern

Verfasst: 26. Mai 2006 14:52
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.

Verfasst: 26. Mai 2006 17:01
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)

Verfasst: 26. Mai 2006 18:34
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...

Verfasst: 26. Mai 2006 19:00
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

Verfasst: 26. Mai 2006 19:29
von KeineAhnung78
Hehe, Wunder gibt es immer wieder. Die Firma dankt :wink:

Re: Visual Studio, Post-Build, Kommandozeile verhindern

Verfasst: 3. Juni 2006 15:19
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.