0

私はC++(PHPから来ました)を初めて使用し、最初のいくつかのプロジェクトでIntelliSenseからかなりのエラーが発生しました。デバッグウィンドウの内容は次のとおりです。

IntelliSense:タイプ「constchar *」の引数は、タイプ「LPCWSTR」のパラメーターと互換性がありませんc:\ C ++ \ RenderEngine \ RenderEngine \ engine.c

このエラーは、その単純なコードを実行した場合でも表示されます。

#include <Windows.h>

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmd, int nShow)
{
    MessageBox(NULL, "Hello, world!", "Simple pop-up", MB_OK);
    return 0;
}

ただし、引用符の前に「L」を付けると(L "Hello、world!")、エラーが消えます。別の方法でそれを取り除くことは可能ですか?(私がフォローしていたチュートリアルにはLが前に付いていなかったので、非常に混乱します...)インターネットを調べていましたが、有用なものは見つかりませんでした...このような質問があれば申し訳ありませんすでに答えられており、私だけがそれを見ていません...

よろしくお願いいたします。ArminMakovec

4

2 に答える 2

0

エラーは、ワイド char 文字列が必要な場所で 8 ビット char 文字列を使用しているためです。引用符で囲まれた文字列定数は ASCII (8 ビット) 文字列で、L のようにその前に L を置きます。「文字列定数」とは、それが wchar_t 文字列であることを意味します。

環境プロパティを常に wchar_t 文字列を使用するように設定することで解決することは、解決する 1 つの方法ですが、これを行うと、他の場所ではコンパイルされません。通常は、移植可能な方法で行い、文字列リテラルを L で開始して wchar_t 文字列を使用する方が適切です。

于 2012-07-20T17:54:12.150 に答える
0

「プロジェクト->(プロジェクト名)プロパティ->構成プロパティ->一般->文字セット」に移動して、マルチバイト文字セットに設定することで解決できました

于 2012-07-20T09:14:57.523 に答える