On 02/10/2018 11:46 PM, David Zhang wrote:
This is what I'm talking about:
void createWindow( ... ) {
assert( wndclassName.ptr ); //This fails
HWND hwnd = CreateWindowW(
wndclassName.ptr, //This too
null,
0,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
null,
null,
null,
null
);
}
wstring wndclassName = "wndclass_name"w;
That's not enough code to reproduce the issue. This works as far as I see:
----
import core.sys.windows.windef: HWND;
import core.sys.windows.winuser: CreateWindowW, CW_USEDEFAULT;
void main()
{
assert( wndclassName.ptr );
HWND hwnd = CreateWindowW(
wndclassName.ptr,
null,
0,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
null,
null,
null,
null
);
}
wstring wndclassName = "wndclass_name"w;
----
But there is a recent regression on Windows that might be related. Do
you also have a static constructor (`static this`) that uses
`wndclassName`? If so, you might be hitting issue 18412.
https://issues.dlang.org/show_bug.cgi?id=18412
If you don't have a static constructor, it might be a different bug. In
that case, please provide complete code so that we can get to the bottom
of it.