szTipフィールドは128文字の長さで、Unicodeです。これはタイプTCHARであり、WCHARとしてtypedefされます。したがって、次のコードスニペットがコンパイルされない理由がわかりません。
nid.szTip = _T("ToolTip");
コンパイルエラーは
error C2440: '=' : cannot convert from 'const wchar_t [8]' to 'WCHAR [128]'
何かアドバイス?
に割り当てている場合、コードは機能しますTCHAR*
。ただし、szTip
ではなく、TCHAR*
として宣言されていTCHAR szTip[64]
ます。
したがって、文字列の内容をバッファにコピーする必要があります。このような:
_tcscpy(nid.szTip, _T("ToolTip"));
ANSI ビルドと Unicode ビルドの両方をサポートする必要は本当にありますか? そうでない場合は、使用をやめてTCHAR
Unicode に切り替えてください。次に、より読みやすいバージョンを作成できます。
wcscpy(nid.szTip, L"ToolTip");