Interfacing with C++
If you have an existing C++ program and want to start using D, it probably isn't practical to rewrite the entire application. However, it may be possible to start writing new components of the application in D. Let's look at how this can be done.
Getting ready
Review how D interfaces with C. Any extern
functions of C work exactly the same way in C++. You'll also need to get the appropriate C++ compiler. On 32-bit Windows, you'll need the Digital Mars C compiler to pair with DMD. On 64-bit Windows, the Microsoft Visual C++ compiler will work. On Linux, use g++.
How to do it …
Let's interface D with C++ by executing the following steps:
Use C++ functions by marking them
extern(C++)
; otherwise, use them in the same way as you use C functions. You can also write a D function with theextern(C++)
linkage and use it from C++ by writing the prototype.Use interfaces marked
extern(C++)
to access objects or to implement objects. Any virtual function in the C++ class should have a corresponding...