0

私は自分のプロジェクトに ZipArchive ライブラリを実装しています。すべてのリンカー エラーを停止するためにセットアップを正しく行うために 1 時間以上使用しました。しかし、今でもこれが残っており、それを修正するための最良の方法がわからないため、助けが必要です。

C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxtls_.h(199) : error C2953: 'CThreadLocal' : class template has already been defined
c:\dev-mms\hl2sdk-ob-valve\public\tier0/threadtools.h(283) : see declaration of 'CThreadLocal'
C:\Program Files\Microsoft Visual Studio 9.0\VC\atlmfc\include\afxtls_.h(202) : warning C4005: 'THREAD_LOCAL' : macro redefinition
c:\dev-mms\hl2sdk-ob-valve\public\tier0/threadtools.h(71) : see previous definition of 'THREAD_LOCAL'
4

2 に答える 2

3

C ++テンプレートのヒント:

  • すべてがヘッダーファイル(.h)に含まれている必要があります
  • 再定義を解決するには、コードを次の場所に配置するだけです。
#ifndef __MY_CODE_eg
#define __MY_CODE_eg

      //コード
      // ここ。

#endif
于 2010-12-04T02:16:16.153 に答える
2

MS の ATL/MFC ヘッダーと HL2 SDK の両方にクラス テンプレートが含まれていますCThreadLocal

それらを正しい順序で含める場合、つまり最初に ATL/MFC ヘッダー (またはそれらを含むヘッダー)、次に HL2 SDK ヘッダーを含める場合、HL2 SDK は#ifndef __AFXTLS_H__.

于 2010-02-27T15:19:59.310 に答える