"C2664: 'strcpy' : 2 番目の引数を 'const wchar_t [5]' から 'const char *' に変換できません。" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2664: 'strcpy' : 2 番目の引数を 'const wchar_t [5]' から 'const char *' に変換できません。

ソース(バグ有り):

#include "windows.h"
#include "StdAfx.h"
int main()
{
char buf[64];
strcpy(buf,L"test"); }


原因:
ワイド文字からマルチバイトへコピーが行われた。

対処:
・strcpy の1番目の引数をワイド文字に変更する。

・lstrcpy関数の代わりに ワイド文字コピー関数であるwcscpyを使用する。


ソース(修正済み):

#include "StdAfx.h"
#include "windows.h"
//ワイド文字
int main()
{
wchar_t buf[64];
wcscpy(buf,L"test"); }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]