_tcsstrを呼び出してwchar_t *に代入するときのコンパイルエラー

c++ visual-studio-2008

以前はうまくいったCプロジェクトをビルドしようとすると、コンパイルエラーになります。

コードは次のとおりです。

const wchar_t * pdest; pdest = _tcsstr(ConnStr、Name);

エラー10エラーC2440: ‘=’: ‘const char *’から ‘const wchar_tに変換できません

私はVisual Studio 2008を使っています。 エラーメッセージは問題をうまく説明しています、しかし、私はこのプログラムがコンパイルに使われたのを知っています、何が間違っていますか?

  0  0


ベストアンサー

あなたのコードは危険です。 _tcsstrはTCHARマクロなので、UNICODEが定義されているかどうかによって定義が変わる可能性があります。 wchar_tは固定です。 あなたが見ているエラーはこの正確な問題によるものです – 環境は_tcsstrのシングルバイトバージョンを使用しています(おそらくUNICODEが定義されていないためです)。

UNICODEを定義しないでください。 最初にコードを修正してください。 両方にTCHARマクロを使用するか、ワイド文字関数を使用します。

7


_tcsstrはTCHAR用です。 コンパイル設定に応じて、これはcharまたはwchar_tのいずれかです。

それで TCHAR`か wcsstr`のどちらかを使ってください

1


これでこの問題は解決するはずです。

_
プロパティ→構成プロパティ→一般→文字セット:マルチバイト文字セットを使用します。
_

0


タイトルとURLをコピーしました