[C/C++] 2 verschiedene Einstiegspunkte, main und Winmain

posi90

Erfahrenes Mitglied
Hallo,

Ist es möglich 2 verschiedene Einstiegspunkte in einer Anwendung zu haben?

Das ganze soll so aussehn:

C++:
...(Win)main(Argumente)
{
	if(Argumente=="-service") main();
	else Winmain();
	return 0;
}

int main()	// Dienstanwendung
{
	InitService();
	return 0;
}

int APIENTRY WinMain()	// WIN32 Oberflächenanwendung
{
	dialog(...);
	return 0;
}

Programmiere mit MVS 2010 auf Win7.


Grüße posi90
 
Hi

Wenn du nur auf "-service" oder so überprüfen willst, nimm doch die if-else Variante wie im Code.
Du solltest die zwei Möglichkeiten nur nicht main/WinMain nennen,
sondern zB. ServiceStart und NormalStart oder sowas in der Art.
 
Die Oberfläche ist jedoch WIN32 wobei die Dienstanwendung über die Konsole läuft, macht das Probleme?

Ich habs noch nicht hinbekommen, werde mich noch weiter bemühen und ausprobieren. Vielleicht komme ich dann auf einen Fehler.

Ein Fehler war, wenn ich die Oberfläche im int main() initialisieren will, schlägt CreateWindow() fehl.
Also muss ich versuchen, den Dienst im Winmain() zum laufen zu bringen.

Grüße posi90
 
In dem Sinne gibt es immer nur einen Einstiegspunkt in ein Programm ... und das ist in der Regel
Code:
public <T> main(<T>...)
Ich kann mir allerdings vorstellen das dieses WinMain vom Präprozessor so umgesetzt wird das beide main() zusammengeführt werden und dann irgend so ne wahnwitzige Prüfung stattfindet ob via CMD oder als GUI gestartet. Aber an sich kann es in einem eigenständigen Programm nur einen Einstiegspunkt geben.
Multi-Entrance *wie es auch heißt* gibt es schon ... allerdings nur bei DLL / SO ...
 
Zurück