On Sun, Jul 15, 2012 at 4:33 PM, Henning Pohl <[email protected]>wrote:
> On Sunday, 15 July 2012 at 12:21:23 UTC, Gor Gyolchanyan wrote: > >> On Sun, Jul 15, 2012 at 4:05 PM, Henning Pohl <[email protected]>** >> wrote: >> >> Most closed source C and C++ libraries provide headers and binaries. It >>> seems to me that there is no way to do this in D, because the source >>> files >>> always have to be available to import their modules. >>> >>> I'm not going to write something proprietary or closed source, but i >>> wonder if others can do so. >>> >>> >> It's quite possible. All you have to do is make a module, which doesn't >> contain any function bodies. The imported modules aren't compiled with the >> code. Most of the time it's easier to have a single module to have both >> the >> code to compile and symbols to import. In other cases they can be >> separated. >> > > Okay, so it works just like in C: > > // The "header" file > module lib; > > void printHelloWorld(); > > > // The "source" file > module lib > import std.stdio; > > void printHelloWorld() { > writeln("Hello world!"); > } > Exactly. Not defining a function body is perfectly fine for precisely these reasons. And, just like in C, forgetting to link with the missing body will result in a linker error. -- Bye, Gor Gyolchanyan.
