【Visual Studio】他プロジェクトを移植するとエラーC2664が報告され、パラメータを「const char []」から「LPCWSTR」に変換できない Qt開発にC++を使用している環境背景

知識は単独のものではなく、体系化されたものでなければなりません。私の個人的な概要と関連する経験の詳細については、このコラム「 Visual Studio」を参照してください

記事ディレクトリ

質問

他の人が検索時に私の記事を取得できるように、エラー メッセージをコピーします。エラーメッセージは次のとおりです。

重大度コード 説明 プロジェクト ファイル行の抑制表示ステータス
エラー C2664 "int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)" : 引数 2 を "const char[29]" から "LPCWSTR" に変換できません GUICamera C:\Users\jicha\source\repos\GUICamera\supportcode.cpp 208


エラーのスクリーンショットは次のとおりです。

ここに画像の説明を挿入


解決

「文字セット」を変更して「マルチバイト文字セットを使用する」に変更しようとしましたが、それでも機能しません。

ここに画像の説明を挿入


解決策の 1 つは、先頭に大文字の「L」を追加して、現在の設定がワイド文字列を必要とする WinAPI 関数に設定されているようであることを示すことです。よくわかりませんが、問題は一時的に解決します。

ここに画像の説明を挿入


別の方法はコーディングです

#include <Windows.h>

前に追加

#undef UNICODE
#undef _UNICODE

プロンプトを「LPCSTR」に変換できない場合は、次の文を追加してください。

#define UNICODE
#define _UNICODE

参照。

  1. VS はパラメーター 1 を「const char *」から「LPCWSTR」ソリューションに変換できません
  2. 引数 2 を「const char[14]」から「LPCWSTR」に変換できません
  3. Windows では #define UNICODE が効果がない理由

おすすめ

転載: blog.csdn.net/weixin_36815313/article/details/131588358