a PWSTR будет wchar_t
строковым указателем. Это строка UNICODE (обычно UCS2), каждый символ занимает 16 бит.
a char*
будет указателем 8 бит на символ. это может быть ASCII, ANSI, UTF8 или одна из многих сотен других кодировок. Хотя вам нужно беспокоиться о кодировках, только если вам нужна строка для хранения языков, отличных от английского или специальных символов.
В целом, Windows API все UNICODE, поэтому большинство программистов Windows используют строки wchar. Но std::string
и CString
оба могут быть UNICODE, если правильные символы #defined
, поэтому ваш выбор между PWSTR
, std::string
и CString
будет зависеть от предпочтения или соглашения кодовой базы, с которой вы работаете с.