digitalmars.D.learn - Beginner Question: Accesing a C .dll from D
- cps (8/8) Sep 10 2006 Hi,
- nobody (5/17) Sep 11 2006 You are correct that accessing Windows DLLs is possible in D. This page ...
- Don Clugston (17/36) Sep 12 2006 That's about *writing* DLLs. Using them is much easier.
- Sean Kelly (5/45) Sep 12 2006 Just a quick note--for pragma(lib) to work, you must build the module
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
Sep 10 2006
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, ChrisYou 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
Sep 11 2006
nobody wrote:cps wrote: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?DigitalMarsToolsHi, 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, ChrisYou 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
Sep 12 2006
Don Clugston wrote:nobody wrote:Just a quick note--for pragma(lib) to work, you must build the module containing the pragma into your program. Build does this automatically, but DMD/GDC do not :-) Seancps wrote: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>.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, ChrisYou 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
Sep 12 2006