On 6/3/2010 2:28 PM, 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.
You might take a look at the Derelict project (dsource.org/projects/derelict) to see a large amount of C code converted to D. I think http://dsource.org/projects/derelict/browser/trunk/DerelictVorbis/derelict/ogg/vorbisfile.d had something very similar to this, line 52.
