Code:
typedef void * (__cdecl *PFNFCIALLOC)(ULONG cb);
#define FNFCIALLOC(fn) void * __cdecl fn(ULONG cb)
Das erste ist eine Typdeklaration fuer einen Funktionstyp.
Delphi-Quellcode:
type
PFNFCIALLOC = function(cb: ULONG): Pointer; cdecl;
FNFCIALLOC hingegen ist ein Makro mit dem man passende Funktionen deklariert oder definiert.
Code:
// Prototyp deklarieren
FNFCIALLOC(testfunktion);
FNFCIALLOC(testfunktion)
{
return NULL;
}
Das resultiert nach Bearbeitung durch den Preprocessor in:
Code:
// Prototyp deklarieren
void * __cdecl testfunktion(ULONG cb);
void * __cdecl testfunktion(ULONG cb)
{
return NULL;
}