For one, don't rely on the smiley-character in your string to have the correct intended character code. Try to use the unicode escape \u263a instead. In other words, try
wchar_t ch2[] = L"black\u263a";
The second mistake in your program is in the line
wchar_t *cht = new wchar_t;
You are allocating room for exactly one wide-character. What you probably intended is something like:
int size = wcslen(ch2);
wchar_t *cht = new wchar_t[size+1];
wcscpy_s(cht, size+1, ch2);
...