On Sunday, 3 July 2022 at 12:54:45 UTC, kinke wrote:
On Sunday, 3 July 2022 at 08:15:38 UTC, frame wrote:
Are you sure?
100%, just try yourself.
Why would the symbol be defined in the executable? `dimedll.d`
isn't compiled into the executable.
The code is using Phobos std.stdio.writeln templates, so the
~20 KB for both exe and DLL are to be expected and IMO
absolutely acceptable.
DMD's DLL support is waaay behind LDC's, especially once stuff
gets more interesting than trivial examples.
Yeah, I tried LDC and there are differences:
The library file generated by LDC contains the link to the DLL.
The library file generated by DMD is missing that link.
So linking the DMD library would embed the symbol from the
library - that was my confusion with your example.
Only the -H switch or manual linker command generates a valid
link to the DLL with DMD but then it's missing all the other
library contents (also it needs `SimpleDllMain` or bails out
linking errors to `_calloc` and Windows symbols) :\
Also the -H switch doesn't work correctly. Without supplying
-L/DLL flag too, I get link error:
```
1561: entry point must be defined
```