Thread overview | ||||||
---|---|---|---|---|---|---|
|
August 31, 2017 Deprecation of toUTF16 | ||||
---|---|---|---|---|
| ||||
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? Kind regards André |
August 31, 2017 Re: Deprecation of toUTF16 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre Pany | import std.conv; auto ws=s.to!wstring; |
August 31, 2017 Re: Deprecation of toUTF16 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kagamin | On Thursday, 31 August 2017 at 17:22:51 UTC, Kagamin wrote:
> import std.conv;
> auto ws=s.to!wstring;
Thank you!
Kind regards
André
|
August 31, 2017 Re: Deprecation of toUTF16 | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andre Pany | 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 |
Copyright © 1999-2021 by the D Language Foundation