error C2872: 'ATL' : ambiguous symbol

WTL7.5和VC6.0/ATL3.0,且定义了_ATL_STATIC_REGISTRY。在编译时会报
StdAfx.cpp
C:/WTL75/INCLUDE/atlapp.h(502) : error C2872: 'ATL' : ambiguous symbol
的错误。
因为定义_ATL_STATIC_REGISTRY将使atlbase.h文件内包含statreg.h文件。而statreg.h文件内声明了另一个ATL名字空间
造成冲突。
解决此问题可以修改stdafx.h

  #include <atlbase.h> 
改为
  #define ATL ATLFIX
  #include <atlbase.h>
  #undef ATL
  namespace ATL = ::ATLFIX;

 

你可能感兴趣的:(c)