On 03/06/10 19:28, Robert wrote:
Hi, I have something like this:

struct ext_api {
int version;
void *(*make_block)(u32 size);
void *(*make_string)(u32 size, int uni);
u32 *(*map_words)(REBSER *ser);
u32 (*find_word)(u32 *words, u32 word);
int (*series_info)(REBSER *ser, REBCNT what);
int (*get_char)(REBSER *ser, u32 index);
u32 (*set_char)(REBSER *ser, u32 index, u32 chr);
int (*get_value)(REBSER *ser, u32 index, RXIARG *val);
int (*set_value)(REBSER *ser, u32 index, RXIARG val, int type);
int (*get_string)(REBSER *ser, u32 index, void **str);
}

How do I convert such a struct to D? I will get a ext_api pointer from a
C compiled program and use this pointer via the struct to call the C
functions.


extern(C):
struct ext_api {
 int version;
 void* function(u32 size) make_block;
 void* function(u32, size, int uni) make_string;
 u32* function(REBSER* ser) map_words;
 /* etc */
}

Make sure you define u32 etc before the struct.

Reply via email to