Trying to call some C code using Extern(C) but got unexpected linker error
Basile B.
b2.temp at gmx.com
Sat Jun 8 07:57:33 UTC 2024
On Saturday, 8 June 2024 at 02:22:00 UTC, Xiaochao Yan wrote:
> Hi, I am new to D and is experimenting with game development
> using D and C.
>
> I had some problem when trying to recreate the
> https://dlang.org/spec/importc.html
>
> [...]
>
> Thanks in advance!
on a recent compiler this should work:
```d
// .d file
import std.stdio;
import std.conv;
import test;
void main() {
writeln("Hello, World!");
pragma(mangle, "printMessage");
extern (C) void printMessage();
printMessage();
}
```
This was fixed by the dear GH Ghost in
https://github.com/dlang/dmd/pull/15582.
A short technical explanation: mangling and call conventions are
not 100% related.
You need to stuff the mangle for that to work.
More information about the Digitalmars-d-learn
mailing list