3

Microsoft Visual C++ Compiler 10.0 (x86) を使用して Qt Creator でレガシー コードをコンパイルしようとしていますが、古典的なエラーが発生しています:

パラメータ 1 を 'char *' から 'LPCWSTR' に変換できません

コードを編集するのではなく (これはサード パーティの SDK であるため、これを行うべきではありません)、解決策は、Visual Studio の一般設定に移動して、文字セットを次のように変更することです。

「マルチバイト文字セットを使用」

ここここで説明されているように)

ただし、私は Visual Studio IDE を使用しておらず、その設定もありません。したがって、コード/コンパイルに関して実際に行う設定を知る必要があります。コンパイラ フラグを設定するか、何かを #define しますか? Qt Creatorで同じことを達成するにはどうすればよいですか?

4

2 に答える 2

9

Visual Studio で簡単に確認すると、次のような結果が得られました。

オプションがUse Unicode Character Setの場合、次の 2 つのコンパイラ オプションがあります。

/D "_UNICODE" /D "UNICODE"

ただし、Use Multi-Byte Character Setの場合は、次のようになります。

/D "_MBCS"

したがって、コマンド ラインを更新して to に変更する/D "_UNICODE" /D "UNICODE"か、シンボルを/D "_MBCS"どこかに #defineする必要があります。_MBCS

于 2012-10-04T08:00:59.090 に答える
1

「LPTSTR」などを使用するコードでMFC関数を呼び出す必要があります。古い.hファイルには次が含まれる場合があります。StdAfx.h、編集するだけです:

#ifdef _MSC_VER

#define assert ASSERT
#define snprintf _snprintf

//remove UNICODE define
#ifdef UNICODE
#undef UNICODE
#endif

#include <afxwin.h>

#endif


\msvc2010\mkspecs\win32-msvc2010\qmake.conf を変更する必要はありません。

于 2012-10-17T09:26:37.587 に答える