wchar[] and wchar*
Denis Koroskin
2korden at gmail.com
Tue Apr 7 16:06:27 PDT 2009
(I wonder why this message wasn't sent hours ago and stuck in my mailbox, but here it goes:)
On Tue, 07 Apr 2009 09:32:59 +0400, novice2 <sorry at noem.ail> wrote:
> hi!
> could you advice me, please, what techniques should be used
> while working with D wchar[] and C wchar* (e.g. Windows unicode API
> named ...W()).
>
> how to pass wchar[] to FuncW(wchar*) and back?
>
> thanks!
The easiest way to go is as follows:
import std.string;
// helper functions
wchar* toWptr(wchar[] str, wchar[] buffer = void) {
size_t len = str.length;
buffer.length = len + 1;
buffer[0..len] = str[];
buffer[len-1] = 0;
return buffer.ptr;
}
wchar[] fromWptr(wchar* ptr) {
return ptr[0..wcslen(ptr)];
}
wchar[] s = "Hello, World"w;
wchar[] h = s[0..5];
// usage
FuncW(toWptr(s), toWptr(h));
// how to use to avoid heap activity:
wchar[256] tmp;
wchar* wptr = toWptr(s, tmp);
...
Hope that helps.
More information about the Digitalmars-d-learn
mailing list