Beginner Question: Accesing a C .dll from D
Don Clugston
dac at nospam.com.au
Tue Sep 12 04:46:05 PDT 2006
nobody wrote:
> cps wrote:
>> Hi,
>>
>> I'm a C/C++ programmer. I'm very interested in D.
>>
>> At the moment my work requires the use of libsndfile
>> (http://www.mega-nerd.com/libsndfile/). Am I right in thinking that I can
>> access Windows .dlls from D? If so, is there an example of how to do this
>> anywhere? Is this difficult to do?
>>
>> Cheers,
>>
>> Chris
>
> You are correct that accessing Windows DLLs is possible in D. This page
> should be a great place to start learning more:
>
> Writing Win32 DLLs in D
> http://digitalmars.com/d/dll.html
That's about *writing* DLLs. Using them is much easier.
All you need to do is
(1) take the C header file (probably libsndfile.h), run htoD on it to
make a D file (which will be called libsndfile.d).
(2) take the C import lib, and if it's a Microsoft COFF format library
(almost all are), run coffimplib on it. Say this creates a file
libsndfile.lib.
in libsndfile.d, add the line
pragma(lib, "libsndfile.lib");
so that you don't need to specify it on the command line.
Then your D program can just
import libsndfile;
Now go off and make some magic <g>.
P.S. you can download htod and coffimplib from the DigitalMars site.
Some links:
http://www.prowiki.org/wiki4d/wiki.cgi?DigitalMarsTools
More information about the Digitalmars-d-learn
mailing list