Установка поля szTip структуры NOTIFYICONDATA - PullRequest
1 голос
/ 01 октября 2011

Поле szTip имеет длину 128 символов и кодировку Unicode. Это тип TCHAR, который typedef'd как WCHAR. Так что я понятия не имею, почему следующий фрагмент кода не скомпилируется.

nid.szTip = _T("ToolTip");

Ошибка компиляции

error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'

Какой совет?

1 Ответ

4 голосов
/ 01 октября 2011

Ваш код будет работать, если вы присваиваете TCHAR*. Однако szTip не является TCHAR*, оно объявлено как TCHAR szTip[64].

Так что вам нужно скопировать содержимое строки в буфер. Как это:

_tcscpy(nid.szTip, _T("ToolTip"));

Вам действительно нужно поддерживать сборки ANSI и Unicode? Если нет, то прекратите использовать TCHAR и переключитесь на Unicode. Тогда вы могли бы написать более читаемую версию.

wcscpy(nid.szTip, L"ToolTip");
...