VS2005 C WIN32で以下のコードをコンパイルするとエラーとなります。lpStringx,lpStringxともLPCTSTRなのですが、どうしてエラーとなるのでしょうか?UNICODEに設定してコンパイルしています。



wcscpy_s(lpStringx,wcslen(lpString),lpString);

error C2664: 'errno_t wcscpy_s(wchar_t *,rsize_t,const wchar_t *)' : 1 番目の引数を 'LPCTSTR'
から 'wchar_t *' に変換できません。(新しい機能 ; ヘルプを参照)

回答の条件
  • 1人2回まで
  • 登録:2009/10/13 00:31:04
  • 終了:2009/10/20 00:35:02

回答(1件)

id:makeworld No.1

makeworld回答回数75ベストアンサー獲得回数232009/10/13 00:46:31

ポイント60pt

LPCTSTRの3文字目のCは、constを意味しますので、書き換えができません。

もし、lpStringxの参照する文字列を書き換えても問題が無いなら、(wchar_t *)にキャストしてあげればOKだと思います。

wcscpy_s((wchar_t *)lpStringx, wcslen(lpString) + 1, lpString);

TCHARとかLPCTSTR、LPTSTRって何???(UsefullCode.net)

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません