On Wednesday, 10 June 2026 at 13:13:28 UTC, kinke wrote:
On Tuesday, 9 June 2026 at 21:01:10 UTC, Alexander wrote:
Is this a bug?
No, this happens when you don't link the static library
defining the struct. And the static init symbol for that struct
(defined in the static lib) is needed because it's not
zero-initialized, due to the static `wchar` arrays. druntime
initializes them with 0 for its definition of the
`NOTIFYICONDATAW` struct:
https://github.com/dlang/dmd/blob/940287bf502969bdb3150946f1c9c402faef0880/druntime/src/core/sys/windows/shellapi.d#L232-L256; it's still not zero-initialized though, because druntime initializes the `cbSize` member.
I link the static library. It passed to linker as
```
/DEFAULTLIB:"C:\Users\Alexander\AppData\Local\dub\cache\windows-d\~master\+windows\build\library-debug-_NZe8fN0M5GyMbh5vcPwPA\windows.lib"
```
This lib added as dependency in dub.json
```
"dependencies": {
"argsd": "~>1.2.0",
"vibe-d": "~>0.9",
"prometheus:vibe": "~>0.2.1",
"windows-d:windows": {
"path": "../windows-d"
}
}
```