Ich versuche, eine Struktur mit dem Namen „IExampleVtbl“ erstellen die einen Zeiger auf meine Funktionen (SetStringPtr, GetStringPtr) und wird ein Teil einer anderen Struktur „IExample“ halten wird.Wie bestellt man C-Struktur/Funktionsdeklarationen, die sich gegenseitig benutzen?
Aber ich will die andere Struktur passieren "IExample" als Parameter zu den Funktionen (SetStringPtr, GetStringPtr).
Dies ist der Code:
#include <windows.h>
#include <stdio.h>
typedef struct {
SetStringPtr *SetString;
GetStringPtr *GetString;
} IExampleVtbl;
typedef struct {
IExampleVtbl *lpVtbl;
DWORD count;
char buffer[80];
} IExample;
typedef long SetStringPtr(IExample *, char *);
typedef long GetStringPtr(IExample *, char *, long);
long SetString(IExample *this, char * str)
{
...
return(0);
}
long GetString(IExample *this, char *buffer, long length)
{
...
return(0);
}
Wie Sie die erste Struktur über die Funktionen wissen müssen sehen können, die Funktionen über die zweite Struktur wissen müssen, die über die erste Struktur wissen müssen.
Wie kann ich das lösen?
Dank es funktioniert wie ein Charme! –