On Monday, June 28, 2010 17:51:09 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?
Um, extern isn't needed in D. All you need to do is make the function public
and
then import the module. I would expect this to work:
////////////////////
module a;
import b;
void bar( ) {
foo( );
}
////////////////////
module b;
import std.stdio;
void foo( ) {
writeln( "Hi!" );
}
////////////////////
- Jonathan M Davis