On 8/31/17 12:12 PM, Andre Pany wrote:
Hi,

I have some problems to find out what to use instead of the deprecated toUTF16 function.

I am calling a shared library written in Delphi.
While this coding is working fine (with german ü)

import std.utf: toUTF16;
wstring ws = toUTF16(s);
BSTR bStr = SysAllocStringLen(ws.ptr, cast(UINT) ws.length);

This coding fails to display the german ü correctly:

import std.utf: encode;
wchar[] ws;
s.each!(c => encode(ws, c));
BSTR bStr = SysAllocStringLen(ws.ptr, cast(UINT) ws.length);


Variable s is of type string. On delphi side WideString is used as type for the string.
Where is the error?


The error is actually in the compiler -- the toUTF16 function you are calling is NOT being deprecated. But the compiler mistakenly is marking it as deprecated.

See here:

https://issues.dlang.org/show_bug.cgi?id=17193

-Steve

Reply via email to