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

Reply via email to