2012-03-02 12 views
4

Visual Studioでダウンロードしたコードをコンパイルしようとしています。コードはmsvc 6用で、VS2010にインポートしました。このコードは、DLLをコンパイルしてlabviewのASIOサポートを提供するためのものです。コード全体についてはhereを参照してください。"再定義;別の型修飾子" in VS2010

ビルド時に次のエラーが発生します。 "エラーC2373: '_ pctype':再定義、異なる型修飾子。次のように

コードスニペットは、次のとおりです。

unsigned short _Ints[ 512 ];
unsigned short *_pctype = _Ints;

誰もが私が提供されるリンクからコードのパッケージを参照する場合、これはファイルGenMonCIN.c

+1

同じ範囲に_pctypeという2つの変数があるようです。たとえば、最初の変数がforステートメント内で宣言されていれば、これはMSVCの以前のバージョンのコンパイラになる可能性がありますが、周囲のコードなしでは分かりにくいです。あなたが使用しているライブラリを掘り下げる代わりに、関連するコードをここにリストすることが本当の助けになります。具体的には、エラーが発生した機能を挙げることができますか? –

+1

提案はJMcFですが、他の出現はありません。さらに詳しい情報が必要な場合は、実際にこのエラーが発生した元の投稿に機能を追加しました。 – brneuro

答えて

8

からエラーメッセージです_pctypeがすでに他の場所で定義されていることを伝えようとしています。

それは、少なくともバージョン2005

_pctype_pwctype_wctype_mbctype_mbcasemap

これらのグローバル変数は、文字の分類で使用される情報を含んでいるので_pctypeは、Visual Studioで使用される識別子であることをappears機能。内部使用のみです。

never pick names with a leading underscore at namespace scopeをご記入ください。これらは実装用に予約されています。ライブラリを書いた人は明らかにそのことを知らなかった。今はあなたが嫌われている。

+0

大丈夫... thx、私はその場合の問題を見ることができます。なぜ私はうんざりしています、私は変数を別のものにリネームすることはできませんか?不思議なことに、 "_pctype"は、この宣言以外の場所ではプロジェクトには現れません。著者がこの宣言を正直にした理由を私は確信していません。私が提供できる唯一のその他の情報は、 "_Ints"宣言の後にコメントされています。 "//サウンドバッファーコードはこれらの外部を参照します。 '供給' – brneuro