tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von sheel
  • 1 Beitrag von SE
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
226
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    posi90 posi90 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    113
    Hallo,

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

    Das ganze soll so aussehn:

    Code cpp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    ...(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
     

  2. #2
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    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.
     
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  3. #3
    posi90 posi90 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    113
    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
     

  4. #4
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.501
    Zitat Zitat von posi90 Beitrag anzeigen
    Die Oberfläche ist jedoch WIN32 wobei die Dienstanwendung über die Konsole läuft
    Ach so.
    Dann nimm die WinMain-Variante (auch beim Projekt erstellen)
    und mach erst bei Bedarf eine Konsole (statt dem Winapi-Fenster) mit
    AllocConsole etc:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
    posi90 bedankt sich. 
    Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
    Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
    "Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?

  5. #5
    SE Tutorials.de Gastzugang
    In dem Sinne gibt es immer nur einen Einstiegspunkt in ein Programm ... und das ist in der Regel
    Code :
    1
    
    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 ...
    posi90 bedankt sich. 

  6. #6
    posi90 posi90 ist offline Mitglied Gold
    Registriert seit
    Aug 2010
    Beiträge
    113
    Danke für den Tipp, werde es gleich mal versuchen.
     

Ähnliche Themen

  1. [C++]WinMain() später laden
    Von Ninjasturm im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 01.09.10, 20:29
  2. Antworten: 3
    Letzter Beitrag: 13.10.08, 11:05
  3. Antworten: 5
    Letzter Beitrag: 13.03.08, 08:12
  4. Mit WinMain eine Konsole erstellen
    Von partitionist im Forum C/C++
    Antworten: 7
    Letzter Beitrag: 04.04.05, 19:46
  5. hilfe, WINMAIN
    Von Kimble im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 14.02.02, 18:52