On Thu, 03 Jun 2010 14:28:21 -0400, Robert <[email protected]> wrote:

Hi, I have something like this:

extern(C) {

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.

Like I wrote above.  Of course, if you wish to make it more d-like, change

void *(*make_block)(u32 size);

to

void * function(u32 size) make_block;

Of course, you still need extern(C) around the whole thing to have C linkage.

-Steve

Reply via email to