Question about calling D method from C/C++

Jacob Carlborg doob at me.com
Sun Jun 2 23:48:25 PDT 2013


On 2013-06-03 06:32, Eric wrote:
> If I use "new" inside a D method that is called from a c++ program
> it causes a segmentation fault.  For example:
>
> C++ code:
>
> #include "dcode.h"
>
> int main(int argc, char *argv[]) {
>      hello();
>      return(0);
> }
>
> D code:
>
> class X {
>      private int x;
>      this() { x = 5; }
>      public int getX() { return(x); }
> }
>
> extern (C++) void hello() {
>      X x = new X();
> }
>
> This will crash when the line "X x = new X()" is executed.
> Is this to be expected?

It seems you haven't started the runtime.

Use this function:

https://github.com/D-Programming-Language/druntime/blob/master/src/rt/dmain2.d#L281

-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list