Getting a reference to an immutable string
David Zhang
straivers98 at gmail.com
Sat Feb 10 22:46:34 UTC 2018
On Saturday, 10 February 2018 at 22:36:41 UTC, ag0aep6g wrote:
> On 02/10/2018 11:26 PM, David Zhang wrote:
>> I've got an immutable string declared in module scope, and I
>> attempted to get a pointer to its characters through both
>> &str[0] and str.ptr. However, it appears to me that the string
>> is behaving like a manifest constant, in that the pointer is
>> null.
>>
>> The language reference indicates that it has a location in
>> memory and thus has a pointer.
>>
>> So, my question is thus: Is this a bug in DMD, or is this just
>> something I missed?
>
> The pointer should not be null, even when `str` is a manifest
> constant. But without code it's impossible to say if you're
> hitting a compiler bug or if you're doing something wrong.
Ah, yeah.
It appears to occur only when compiled in x86 mode.
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;
More information about the Digitalmars-d-learn
mailing list