On 2012-10-17 07:07, Ellery Newcomer wrote:
I am interfacing with some C code [python.dll], which has some structs
declared like so:

PyTypeObject PyType_Type;

I wish to be able to link to PyType_Type like so:

extern(C) __gshared PyTypeObject PyType_Type;

in linux, I can do exactly that, but optlink is generating a new memory
location for PyType_Type.

strings output suggests that my lib file contains the symbol PyType_Type.

Is this sort of thing supposed to work?

You need to declare the variable as "extern" if it's defined in the C code:

extern(C) extern __gshared PyTypeObject PyType_Type;

http://dlang.org/interfaceToC.html#C%20Globals

--
/Jacob Carlborg

Reply via email to