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

}
```

Reply via email to