0

我正在将 ZipArchive 库实施到我的项目中,并且我与它战斗了一个多小时,以正确设置它以停止所有链接器错误。但是现在我仍然有这个问题,我不确定修复它的最佳方法,可以使用一些帮助。

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

      // 你的代码
      // 这里。

#万一
于 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 回答