On Thursday, 20 February 2025 at 20:09:29 UTC, Ian wrote:
Hi,

What is the recommended documentation or introductory material on how to call C libraries from D? I've seen it done in GtkD (for GTK3) and I have heard of -betterC, but it's all a little overwhelming. (I'm an experienced C programmer but new to D)

Cheers,
 Ian

Normally, you should be using ImportC. Look at the quick example from the spec: https://dlang.org/spec/importc.html#examples

The first line of hello.c looks like this:

```
#include <stdio.h>
```

When ImportC compiles a C file, it runs the C preprocessor and does all the including you need. But rather than stdio.h, you can compile a C file that includes all the C headers you need. That's all you have to do. You can use the usual preprocessor calls like -I by using the -P switch: https://dlang.org/spec/importc.html#auto-cpp

Assuming ImportC works with your C headers, that's everything you need.

If ImportC doesn't work (as may be the case due to C extensions and preprocessor hacks), you should use dpp or dstep: https://dlang.org/spec/importc.html#dpp

Reply via email to