[C/C++] Mal eine simple frage

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von .x-tra, 6. September 2010 .

Schlagworte:
  1. 6. September 2010
    Mal eine simple frage

    Ich steig grad in c++ ein und würde gern wissen was die parameter und allg. die wörter nach winapi bedeuten


    Code:
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    vorallem dieses HINSTANCE interessiert mich...
    ist das ein selbst ausgedachter datentyp?
     
  2. 6. September 2010
    AW: Mal eine simple frage

    Öhm. Du steigst gerade in c++ ein und willst direkt Fenster programmieren? Ich bin in Programmierung nicht so der Crack, aber über sowas wurden ganze Bücher geschrieben ^^ Ich würd dir erstmal empfehlen, dich anhand der Konsole, der Programmiersprache zu nähern. Am besten mitm schön dicken Buch auf deinem Tisch

    Verhau mich wenn ich damit falsch liege. Ich kenn Winapi nur in dem Zusammenhang. Was willst du denn Programmieren, wenn ich mit meiner Vermutung falsch liege?

    Naja wurst. In der MSDN steht folgendes:

    "The return value is cast as an HINSTANCE for backward compatibility with 16-bit Windows applications. It is not a true HINSTANCE, however. The only thing that can be done with the returned HINSTANCE is to cast it to an int and compare it with the value 32 or one of the error codes below."

    Wenn du damit garnichts anfangen kannst, tritt wohl Part 1 in Kraft
     
  3. 7. September 2010
    AW: Mal eine simple frage

    Im Parameter hInstance wird das Instance-Handle deines Programms gespeichert, sprich in dieser wird die virtuele "Startaddresse" deines Programs gespeichert.
    Das Instance-Handle ist im Prinzip immer die Speicher/Start-Addresse eines Modules/Programms/Bibliothek.

    Im Parameter hPrevInstance wird der vorherige Instance-Handle übergeben, eigentlich ist dieser immer 0. Warum dies so ist wird nirgens mir bekannten beschrieben, wahrscheinlich ist es abwährtskompatibel zu alten Windows-Versionen

    Im Parameter lpCmdLine werden alle "KommondaZeilen" an dein Programm übergeben, normalerweiße ist im ersten Element des Arrays der vollständige Pfad deines Programs gespeichert, alle weiteren Paramater werden zB. aus der "Kommandeeingabe" (cmd) übergeben, auch werden beim Start auf die EXE "gezogene" Dateien darin aufgelistet, damit deine Anwendung die möglichkeit hat diese zu verarbeiten.

    Im Parameter nCmdShow wird der Start-Flag deiner Anwendung festgellegt welches extern auch übergeben werden kann zB. Minimiert/Maximiert etc., ob deine Anwenung diese verarbeitet ist dann eine andere Sache.

    Der Rückgabewert den deine Anwednung mittels return zurückgibt ist dein eigen definierter Fehlercode, bei keinem Fehler wurde der Wert 0 fesgelegt; der Fehlercode wird jedoch von WIndows nicht speziel behandelt, dies ist dann wenn überhaupt die Aufgabe einer externen Anwendung die deine aufgerufen hat.

    Weitere Details siehe MSDN WinMain entry point (Windows)

    Mfg Rushh0ur
     
  4. 7. September 2010
    AW: Mal eine simple frage

    Ich will hier auch mal auf die MSDN verweisen, da das eine typische Frage ist, die man durch kurzes googlen (',,Stichwort'' MSDN') beantworten könnte, jedenfalls wenn es um windows-spezifische Informationen geht ist man dort gut aufgehoben.

    Hier zur WinMain
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.