Hi. I try to interface D module with C one. See: * file test.c: #include <stdio.h> int c_var; int func() { c_var = 1234; printf("In C\n"); printf("c_var = %d\n", c_var); printf("&c_var = %x\n", &c_var); return 0; }
* file unit.d: module unit; import std.stdio; extern(C){ int c_var; int func(); } void main() { func(); writeln("In D"); writefln("c_var = %d", c_var); writefln("&c_var = %x", &c_var); } And compile: dmc -c test.c dmd unit.d test.obj I'd like to call C functions and use C variables in D module. D calls C functions just fine, but how can I use C variables? This program outputs: In C c_var = 1234 &c_var = 45d004 In D c_var = 0 &c_var = 14298c