WinAPI использует CHAR
, WCHAR
и TCHAR
.CHAR
всегда отображается на нормальный char
, WCHAR
на wchar_t
.
TCHAR
зависит от настроек компилятора, однако: в UNICODE
сборке он эквивалентен WCHAR
ив не UNICODE
до CHAR
.
Аналогично, есть LPSTR
, LPWSTR
и LPTSTR
, это указатели на соответствующие им XCHAR
части счетчика (L
ong P
ointer).Вы всегда должны использовать соответствующие пары:
CHAR
и LPSTR
WCHAR
и LPWSTR
TCHAR
и LPTSTR
Примечание: в моем личном коде я бы никогда не использовал эти бесполезные макросы *STR
, вместо этого я бы напрямую использовал [W|T]CHAR [const]*
...
С приведенной выше информацией:
LPSTR ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
// is equivalent to:
CHAR* ComputerName[MAX_COMPUTERNAME_LENGTH + 1];
// ^
Скорее всего, не то, что вы хотели ...