JustShinigami
Mitglied
Hallo liebe Community, ich bins mal wieder.
Da VC++ bei mir endgültig verbuggt, versuche ich nun einen Wrapper C#-Only zu erstellen.
Folgende C++ Struktur wird benötigt:
So sieht der Funktionszeiger momentan aus:
Meine funktionierende Equivalent-Struktur sieht so aus:
Mir gefällt allerdings nicht, dass ich die Funktionszeiger als IntPtr habe, jedoch weiß ich nicht, wie ich das sonst machen soll.
Weiß da jemand, wie ich das machen kann?
Danke schon mal im Voraus.
Gr. JustShinigami
Da VC++ bei mir endgültig verbuggt, versuche ich nun einen Wrapper C#-Only zu erstellen.
Folgende C++ Struktur wird benötigt:
C++:
typedef struct SDL_AudioCVT
{
int needed; /**< Set to 1 if conversion possible */
SDL_AudioFormat src_format; /**< Source audio format */
SDL_AudioFormat dst_format; /**< Target audio format */
double rate_incr; /**< Rate conversion increment */
Uint8 *buf; /**< Buffer to hold entire audio data */
int len; /**< Length of original audio buffer */
int len_cvt; /**< Length of converted audio buffer */
int len_mult; /**< buffer must be len*len_mult big */
double len_ratio; /**< Given len, final size is len*len_ratio */
SDL_AudioFilter filters[10]; /**< Filter list */
int filter_index; /**< Current audio conversion function */
} SDL_AUDIOCVT_PACKED SDL_AudioCVT;
So sieht der Funktionszeiger momentan aus:
C++:
typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, SDL_AudioFormat format);
Meine funktionierende Equivalent-Struktur sieht so aus:
C#:
public struct AudioCVT
{
public int Needed;
public ushort SrcFormat;
public ushort DstFormat;
public double RateIncr;
public byte* Buf;
public int Len;
public int LenCvt;
public int LenMult;
public double LenRation;
public IntPtr[] Filters;
public int FilterIndex;
}
Mir gefällt allerdings nicht, dass ich die Funktionszeiger als IntPtr habe, jedoch weiß ich nicht, wie ich das sonst machen soll.
Weiß da jemand, wie ich das machen kann?
Danke schon mal im Voraus.
Gr. JustShinigami