On Saturday, 31 December 2011 at 19:05:44 UTC, DNewbie wrote:
C program loads D dll
or
D program loads C dll
Is it possible?
Both are possible.
Here's how to create a DLL in D, usable from C:
http://dlang.org/dll.html
As for loading C symbols in a DLL from a D program, you must link
against an import library of the DLL, and create an interface
module (similar to a header file) with the C declarations. For
example, if this is your C DLL:
-----------
#include <stdio.h>
__declspec(dllexport) void sayHello(const char* name)
{
printf("hello, %s!", name);
}
-----------
Then your D interface module should look like this:
-----------
extern(C) void sayHello(const char* name);
-----------
The import library must be in the OMF format. The easiest way to
get such an import library is to use the `impllib` tool which can
be downloaded from here:
http://ftp.digitalmars.com/bup.zip