2008-09-03 39 views
1

odbcss.hを含むヘッダファイルをインクルードすると、C++コンパイラエラーC2371が発生します。私のプロジェクトはMBCSに設定されています。C++コンパイラエラーC2371 - WCHARの再定義

C:\プログラムファイル\マイクロソフトのSDK \ Windowsの\ v6.0A \は\ odbcss.h(430)が含ま: エラーC2371: 'WCHAR':再定義を。異なる基本タイプ1>
C:\プログラムファイル\マイクロソフトのSDK \ Windowsの\ v6.0A \は\ WINNT.H(289)を含み: 私は表示されません

'WCHAR' の宣言を参照してくださいこれを避けるために設定できるodbcss.hを定義しています。他に誰がこれを見たことがありますか?

答えて

0

このエラーは、既に宣言されている変数と同じ名前の変数を再宣言すると発生します。 odbcss.hがあなたがすでに持っている変数を宣言しているかどうか確認しましたか?

0

これは役に立ちますか?

http://bytes.com/forum/thread602063.html

スレッドからのコンテンツ:

ブルーノ・バンDooren [MVP VC++]しかし、私はこの問題の解決策を知っています。 "wchar_tを組み込みの タイプ"値 "いいえ(/ Zc:wchar_t-)"としてプロジェクト設定を変更して解決します。しかし、私は "Xtreme Toolkit プロフェッショナルエディション"をよく使っています&アプリケーションの感じ、 上記の問題をプロジェクト設定を変更して修正すると、新しいエラー Xtreme Toolkit Libraryからリンクエラーが発生します。だから私は この問題を、プロジェクト設定 "組み込みの型として扱う" 値 "はい"と私はwab.h ヘッダーファイルが含まれている次のステートメントを書いた修正します。コードファイルごとにその設定を変更することができます。 特定のファイルのみがその特定の設定でコンパイルされるようにします。 の場合、問題を解決できる場合は、最も洗練された ソリューションになります。

#undef WIN16

と後#include "wab.h"

#define WIN16私のプロジェクトが正常に動作しているとWABに関連するすべてのものはまた、正常に動作していること。いずれかのガイド私は、正しい方法です この問題を解決するには?そして、これは プロジェクトの残りの部分に影響を与えますか?私はそれについて心配しません。どのような定義であれ、どちらの場合も16ビットの変数である。 私はそれがベスト の解決策ではないことに同意しますが、WIN16は wab.hファイルの中に他の影響はありません。

-

敬具、ブルーノ・バンDooren [email protected] これについてはウェブの周りの様々なフォーラムに半ダースの記事があります唯一の「_nos_pam」

+2

このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 – Mac

+0

@Macコンテンツを追加しました... –

+0

優秀!ずっといい... :) – Mac

1

を削除する - それはodbcss.hがMFCの存在下で使用される場合、潜在的に問題になるようです。答えのほとんどは、インクルードされたヘッダーの順番を変えること(ブードーデバッグ)です。 odbcss.hを含むヘッダーはネイティブプロジェクトで正常にコンパイルされますが、別のプロジェクトに含まれているとこのエラーが発生します。後者のプロジェクトのstdafx.hに、MFCのベースインクルードの直後に置いても、まだ喜んでいません。我々は最終的にMFCを使用しない元のプロジェクトのcppファイルに移動することでそれを回避しました(これはやっていたはずですが、私たちのコードではありませんでした)。だから私たちは回避策を持っていますが、実際の解決策はありません。