www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Is there any bettter solution to Windows wide string

reply Vinod K Chandran <kcvinu82 gmail.com> writes:
Hi all,
I am planning some win32 hobby projects. Now I have this function 
to tackle the LPCWSTR data type in win32.
```d
private import std.utf;
auto toWString(S)(S s) { return toUTFz!(const(wchar)*)(s); }
```
Is there any better way to do this ?
May 08
next sibling parent reply Imperatorn <johan_forsberg_86 hotmail.com> writes:
On Saturday, 8 May 2021 at 20:50:10 UTC, Vinod K Chandran wrote:
 Hi all,
 I am planning some win32 hobby projects. Now I have this 
 function to tackle the LPCWSTR data type in win32.
 ```d
 private import std.utf;
 auto toWString(S)(S s) { return toUTFz!(const(wchar)*)(s); }
 ```
 Is there any better way to do this ?
iirc that's toUTF16z
May 08
parent Vinod K Chandran <kcvinu82 gmail.com> writes:
On Saturday, 8 May 2021 at 21:26:06 UTC, Imperatorn wrote:

 iirc that's toUTF16z
Thanks. Let me check. :)
May 08
prev sibling parent reply FreeSlave <freeslave93 gmail.com> writes:
On Saturday, 8 May 2021 at 20:50:10 UTC, Vinod K Chandran wrote:
 Hi all,
 I am planning some win32 hobby projects. Now I have this 
 function to tackle the LPCWSTR data type in win32.
 ```d
 private import std.utf;
 auto toWString(S)(S s) { return toUTFz!(const(wchar)*)(s); }
 ```
 Is there any better way to do this ?
You may try using tempCStringW from std.internal.cstring. It uses small string optimization. However the api is internal, so I'm not sure how valid it is to use this function. The returned struct is a temporary buffer so you must ensure that you don't escape dangling pointers.
May 09
parent Vinod K Chandran <kcvinu82 gmail.com> writes:
On Sunday, 9 May 2021 at 09:34:00 UTC, FreeSlave wrote:

 You may try using tempCStringW from std.internal.cstring. It 
 uses small string optimization. However the api is internal, so 
 I'm not sure how valid it is to use this function. The returned 
 struct is a temporary buffer so you must ensure that you don't 
 escape dangling pointers.
Thanks for the reply. Let me check. :)
May 09