C binding with D function
bachmeier via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Aug 3 06:49:36 PDT 2016
On Wednesday, 3 August 2016 at 13:44:46 UTC, llaine wrote:
> Hi guys,
>
> I'm trying to make a bridge between D and ruby with a gem
> called ffi.
> It's basically a loading/binding library that grab C function
> and make them callable from Ruby code.
>
> As you might already understand, i'm trying to develop
> extensions using D and uses them in Ruby.
>
> I tried to get the simplest example ever but nothing is working
> so far.
>
> Basically here is my D code :
>
> import std.stdio : writeln;
>
> extern(C)
> {
> void puts(string str)
> {
> writeln(str);
> }
> }
>
> void main(){ }
>
> I'm building it using "targetType": "dynamicLibrary" on my
> dub.json
>
>
> My problem is when I try to call it in C, it blows up with a
> segmentation fault.
> I'm looking for here extra documentation/help on how to
> properly create C binding in D.
>
> I already post an issue on FFI to seek from help, you can find
> here some extra informations about the C trace
>
>
> https://github.com/ffi/ffi/issues/522
>
>
> Any help would be welcomed!
Probably because you need the D runtime. One way is to import
core.runtime and call Runtime.initialize().
More information about the Digitalmars-d-learn
mailing list