2

szTipフィールドは128文字の長さで、Unicodeです。これはタイプTCHARであり、WCHARとしてtypedefされます。したがって、次のコードスニペットがコンパイルされない理由がわかりません。

nid.szTip = _T("ToolTip");

コンパイルエラーは

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

何かアドバイス?

4

1 に答える 1

5

に割り当てている場合、コードは機能しますTCHAR*。ただし、szTipではなく、TCHAR*として宣言されていTCHAR szTip[64]ます。

したがって、文字列の内容をバッファにコピーする必要があります。このような:

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

ANSI ビルドと Unicode ビルドの両方をサポートする必要は本当にありますか? そうでない場合は、使用をやめてTCHARUnicode に切り替えてください。次に、より読みやすいバージョンを作成できます。

wcscpy(nid.szTip, L"ToolTip");
于 2011-09-30T20:21:14.150 に答える