Mehrere Rückgabetypen?
-
Ich hab mich mal an ein paar WinAPI Tutorials heran gewagt und dabei bin ich auf folgende Beschreibung der WinMain()-Funktion getoßen:
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);
Und beim Durchstöbern der WinUser.h i ist es sogar noch schlimmer geworden:
WINUSERAPI int WINAPI MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT);
Also ich vermute ja dass in beiden Beispielen der Rückgabetyp int ist, aber was machen denn die anderen Dinge da? Sollen das weitere Rückgabetypen sein oder was ist das?
mfg
-
Falsches Forum: ist WinApi!
In beiden Fällen wird int zurückgegeben. Die anderen Dinge sind "defines", wie die WinApi die Sachen sehen will. Keine Funktion kann mehrere Rückgaben haben!
-
berniebutt schrieb:
Keine Funktion kann mehrere Rückgaben haben!
Aufjeden Fall mal nicht in C++
-
Ok sorry, falsches Forum
Dachte nicht dass das was WinAPI spezifisches ist, sondern dass das generell irgendwas ist wo ich nicht mitbekommen habe, dass es das gibt.
Trotzdem danke
-
WINAPI und APIENTRY sind, glaube ich, defines auf Calling-Conventions, wenn du der Definition folgst, wirst du wahrscheinlich irgendwo sowas finden:
#define WINAPI __stdcall
-
Badestrand schrieb:
WINAPI und APIENTRY sind, glaube ich, defines auf Calling-Conventions, wenn du der Definition folgst, wirst du wahrscheinlich irgendwo sowas finden:
#define WINAPI __stdcall
Jup. Das versteckt sich normalerweise hinter WINAPI. APIENTRY habe ich so auf die schnelle nicht gefunden.. Wird aber etwas ähnliches sein. Sicher ist, dass es sich nicht um ein Rückgabetyp handelt.
-
Badestrand schrieb:
WINAPI und APIENTRY sind, glaube ich, defines auf Calling-Conventions, wenn du der Definition folgst, wirst du wahrscheinlich irgendwo sowas finden:
#define WINAPI __stdcall
tue doch nicht so. entweder wusstest du das oder du hast es in den headern nachgeguckt, also spar dir doch bitte das "glaube ich" und "wahrscheinlich" gehabe
-
Typisch C++.de schrieb:
entweder wusstest du das oder du hast es in den headern nachgeguckt
Weder noch, ich hatte es so in Erinnerung, war mir aber nicht sicher genug, um einen "definitiven" Satz draus zu machen. Und APIENTRY hab ich für meinen Teil noch nie gehört/gelesen.
-
Genau, WINAPI und APIENTRY stehen für Callingconventions, können aber variieren. Oftmals (hab bis jetzt keinen anderen Fall finden können) steht APIENTRY für das Selbe wie WINAPI (meistens __stdcall oder _cdecl).
-
Vielen Dank an alle und besonders an Badestrand und David_pb.
Die Antwort mit den Calling Conventions war genau das was ich gesucht habe. Davon hab ich bisher nämlich noch nichts gehört.mfg