toUTFz and WinAPI GetTextExtentPoint32W

Timon Gehr timon.gehr at gmx.ch
Tue Sep 20 11:44:40 PDT 2011


On 09/20/2011 08:24 PM, Timon Gehr wrote:
> On 09/20/2011 08:07 PM, Andre wrote:
>> Am Tue, 20 Sep 2011 19:27:03 +0200 schrieb Trass3r:
>>
>>>> bool test(HDC dc, string str, int len, SIZE* s)
>>>> {
>>>> wchar[] wstr = toUTFz!(wchar*)str;
>>>> GetTextExtentPoint32W(dc wstr.ptr, wstr.length, s);
>>>
>>> toUTFz returns a wchar*, not a wchar[].
>>
>> I am not familiar with pointers. I know I have to
>> call toUTFz! and fill pointer value and length value
>> of the WinAPI from the result.
>> Do you have any suggestions how to achieve this API call?
>>
>> Kind regards
>> Andre
>
> Are you sure that the call requires the string to be null terminated? I
> do not know that winapi function, but this might work:
>
> bool test(HDC dc, string str, SIZE* s)
> {
> auto wstr = to!(wchar[])str;
> GetTextExtentPoint32W(dc, wstr.ptr, wstr.length, s);
> ...

sry, should have read:

bool test(HDC dc, string str, SIZE* s)
{
auto wstr = to!(wchar[])(str);
GetTextExtentPoint32W(dc, wstr.ptr, wstr.length, s);
...












More information about the Digitalmars-d-learn mailing list