On 29.06.2010 02:51, Simen kjaeraas wrote:
//////////////////// module a;extern void foo( ); void bar( ) { foo( ); } //////////////////// module b; import std.stdio; void foo( ) { writeln( "Hi!" ); } //////////////////// The above does not work (Error 42: Symbol Undefined _D1a3fooFZv). Adding extern to foo in module b changes nothing. extern( C ) works, but seems like a hack. Better ideas?
Using extern (C) is the only way I've seen this done. I don't know of any way to make the symbols match up otherwise. There's probably some hack that works, but is uglier than the more straightforward solutions. You could always create a b.di file, if that doesn't defeat the purpose.
