typedef int (WINAPI *_TE0300_Open)(unsigned int* PHandle, int CardNo);
Diese Linie typedefs einen Funktionszeiger auf eine Funktion WINAPI
convention Aufruf ein int
Rückkehr und ein unsigned int *
zu nehmen und ein int
. Der Funktionszeigertyp erhält den Alias _TE0300_Open
.
Betrachten Sie das folgende Beispiel:
typedef void (*func)();
void foo (func f) //notice we have a nice type name here
{
cout << "Calling function...";
f();
}
void bar(){}
int main()
{
foo (bar);
}
Ich glaube, C++ 11-Unterstützung für weniger eklig Syntax hinzugefügt, wenn auch Funktionszeiger mit:
using func = void (*)();
Was Ihre GetProcAddress
Aufruf, diese Lasten eine Funktion aus einer Bibliothek. Sie weisen es einem Funktionszeiger zu, und Sie können diesen Funktionszeiger wie die ursprüngliche Funktion verwenden. In Ihrem Beispiel können Sie jetzt TE0300_Open
anrufen, wie Sie normalerweise _TE0300_Open
anrufen würden. Es sollte auch angemerkt werden, dass _TE0300_Open
ein Name ist, der für die Implementierung reserviert ist.
Mögliches Duplikat von [Typedef Funktionszeiger?] (Http://stackoverflow.com/questions/4295432/typedef-function-pointer) und [Typedef mit zwei Klammern?] (Http://stackoverflow.com/) Fragen/9515739/typedef-with-two-sets-of-brackets) –