0

大学のプロジェクトで DirectX を学習していますが、コンパイラで次のエラーが表示されます。

"10 C:\Dev-Cpp\projectdirectx\main.cpp cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'"

私はこれをまったく理解していません. 何が間違っていたのかわかりません. 私がやろうとしているのは単純なメッセージボックスです. コードは次のとおりです.

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nShowCmd)
{
      MessageBox(NULL, L"testing testing",
                 L"C++", MB_OK);


      return 0;
}

私は何をしますか?

4

3 に答える 3

2

ANSI ビルドをビルドしていますが、Unicode リテラルを使用しています。通常の文字列リテラル (L前にプレフィックスをドロップ) を使用するか、Unicode ビルドに切り替えます。

于 2013-08-10T18:31:58.830 に答える
0

文字列から L プレフィックスを削除するだけです。

于 2013-08-10T18:31:45.493 に答える
0

MessageBox問題は、ビルド環境では当てはまらないワイド文字バージョンの関数を呼び出そうとしていることです。L関数呼び出しでマクロを削除するだけで機能します。

于 2013-08-10T18:32:06.983 に答える