Deprecation of toUTF16
Steven Schveighoffer via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Aug 31 12:37:20 PDT 2017
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
More information about the Digitalmars-d-learn
mailing list