digitalmars.D.learn - Creating a dynamic link library
- Fractal (7/7) Jun 08 2009 Hello
 - Robert Clipsham (7/18) Jun 08 2009 I'm by no means an expert on the subject, but I know enough to say...
 - Robert Fraser (7/18) Jun 08 2009 DLLs + D basically don't work (they work 100% if either only the host or...
 
Hello
Using Windows, I created a DLL with D, and when I try to create my  test
executable (also with D), the ImpLib program displays an error saying that
there is no any exported function. The DLL source only contains a class with
the export attribute like:
export class Foo
{
}
And also... the GC can be implemented in the DLL and not in the executable?
Thanks
 Jun 08 2009
Fractal wrote:
 Hello
 
 Using Windows, I created a DLL with D, and when I try to create my  test
executable (also with D), the ImpLib program displays an error saying that
there is no any exported function. The DLL source only contains a class with
the export attribute like:
 
 export class Foo
 {
 }
 
 And also... the GC can be implemented in the DLL and not in the executable?
 
 Thanks
I'm by no means an expert on the subject, but I know enough to say... 
DON'T DO IT! There's a huge wealth of issues that come from using DLLs 
and D, you'd be far better off using DDL (
http://www.dsource.org/projects/ddl ). Sorry I can't give a real reason 
for this, I'm not a windows user so couldn't care less about DLL's not 
working properly :P
 Jun 08 2009
Fractal wrote:
 Hello
 
 Using Windows, I created a DLL with D, and when I try to create my  test
executable (also with D), the ImpLib program displays an error saying that
there is no any exported function. The DLL source only contains a class with
the export attribute like:
 
 export class Foo
 {
 }
 
 And also... the GC can be implemented in the DLL and not in the executable?
 
 Thanks
DLLs + D basically don't work (they work 100% if either only the host or 
only the extension is written in D, and then only for free functions 
with extern(C) linkage). For D-D shared libraries on Windows (which also 
work on Linux), I'd recommend checking out DDL:
Documentation/homepage: http://www.dsource.org/projects/ddl
Working code (fork): http://team0xf.com:8080/ext/file/94be291e4d32/ddl/
 Jun 08 2009








 
 
 
 Robert Clipsham <robert octarineparrot.com> 