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