On Thursday, 7 April 2022 at 11:03:39 UTC, Tejas wrote:
On Thursday, 7 April 2022 at 10:50:35 UTC, BoQsc wrote:
Here I try to concatenate three character strings using
`wcsncat()`.
[...]
Maybe try using `wstring` instead of string? Also use the `w`
postfix
```d
wstring dlang_string = "BBBBBBBBBBB"w;
I can't test because I'm not on my PC and I don't use Windows
Exactly same results. `AAAAAAAAAABBBBBBBBBBBBBBBBBBBB`
```
import std.stdio;
@system void main(){
import std.utf : toUTF16z, toUTF16;
import core.stdc.wchar_ : wcsncat, wcslen, wprintf;
import core.stdc.stdlib : wchar_t;
import core.sys.windows.winnt : LPCWSTR;
wchar_t* clang_string = cast(wchar_t *)"AAAAAAAAAA";
wstring dlang_string = "BBBBBBBBBBB"w; //<---- NEW,
same results
LPCWSTR winpointer_to_string = "CCCCCCCCCC";
wcsncat(clang_string, dlang_string.toUTF16z,
wcslen(dlang_string.toUTF16z));
// String output: AAAAAAAAAABBBBBBBBBBB
wcsncat(clang_string, winpointer_to_string,
wcslen(winpointer_to_string));
// String output: AAAAAAAAAABBBBBBBBBBBBBBBBBBBB
// Expected string: AAAAAAAAAABBBBBBBBBBBCCCCCCCCCC
wprintf(clang_string);
// String output: AAAAAAAAAABBBBBBBBBBBBBBBBBBBB
// Expected string: AAAAAAAAAABBBBBBBBBBBCCCCCCCCCC
}
```