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