Auf der Suche nach CALLBACK :-)
-
Auf der Suche nach CALLBACK
Also ich wollte man mehr über C++ Interna wissen und wollte einfach mal nachgucken wie CALLBACK in c++ definiert ist.
Folgendes habe ich gefunden:
#define __attribute__(x)
#define __stdcall __attribute__((stdcall))
#define CALLBACK __stdcallman könnte statt CALLBACK auch __stdcall schreiben. Statt __stdcall auch __attribute__((stdcall)). Aber ab hier blicke ich nicht durch - wird __attribute__((stdcall)) dann durch (stdcall) ersetzt oder wie? Naja ich benutze GCC.
PS: __attribute__(x) steht nur in einer Zeile in allen h-files.
-
thread verschoben ins winapi forum WinAPI
-
Original erstellt von <gogo>:
**#define __attribute__(x)
**Das definiert alle attribute auf das nichts, also jedes __attribute__(x) wird zu nichts aufgelöst. Ist aber ne merkwürdige Definition, im gcc-Text hat __attribute__ eigentlich eine große Bedeutuung für den Compiler. __stdcall ist jedenfalls eine Art und weise, wie die Funktion im Assemblercode ihre Parameter bekommt, da muss eine feste Methode benutzt werden, da Windows die Callback funktionen genau so aufruft.
-
__attribute__((stdcall))
ist ja nicht
__attribute__(x)
bedeutet das dann dass __attribute__((stdcall)) stehenbleibt und nicht ersetzt wird? Mich macht dieses (x) total wahnsinnig... Ich verstehe nicht ob es nun was macht oder nicht
-
Original erstellt von <gogo>:
bedeutet das dann dass __attribute__((stdcall)) stehenbleibt und nicht ersetzt wird? Mich macht dieses (x) total wahnsinnig... Ich verstehe nicht ob es nun was macht oder nichtx ist ein parameter. Beispiel:
#define foo(x) (x+1)
printf("%d", foo(3));
gibt 4 aus. Für x wird der jewilige Parameter aus, hier expandiert das also zu:
printf("%d", 3+1);Ebenso wird in deinem Beispiel für das x eingesetzt (stdcall)
-
Cool danke - habe mir schon fast gedacht