Create C header files from

MaxNaderer maximilian.wallinger at gmail.com
Tue Feb 17 15:27:20 UTC 2026


On Monday, 16 February 2026 at 20:06:52 UTC, Lance Bachmeier 
wrote:
> On Monday, 16 February 2026 at 20:04:36 UTC, Lance Bachmeier 
> wrote:
>> On Monday, 16 February 2026 at 17:07:53 UTC, MaxNaderer wrote:
>>> Hello guys,
>>>
>>> so how do we generate C header files automatically for a 
>>> library compiled with dmd, ldc
>>> in betterC. Like basic example below. I found the "-HC" flag 
>>> which can be used to output C++ header files. Do I need to 
>>> convert those manually to C?
>>>
>>> ```D
>>>
>>> export extern(C) {
>>>
>>>     uint add(uint a, uint b) {
>>>         return a + b;
>>>     }
>>>
>>> }
>>
>> ```
>> dmd -c mycode.c -Hf=mycode.di
>> ```
>>
>> https://dlang.org/spec/importc.html#ctod
>>
>> If you want to output the function bodies as D code, add 
>> `-inline`:
>>
>> ```
>> dmd -c mycode.c -inline -Hf=mycode.di
>> ```
>
> Oh sorry. I think you mean you are compiling D code to be 
> called from C.

Thank you for your answer. Yes I am going the other way. I create 
the lib in D and want to create a C header and other bindings. It 
should be a lib usable from many other languages like raylib but 
with the power of D!

I have looked into __traits and I guess i need to go this way.
The perfect way would be to get a XML or json from the functions 
so that the bindings can be easily automated


More information about the Digitalmars-d-learn mailing list