ATL库:警告LNK4254和LNK4078

时间:2012-03-04 22:44:49

标签: c++ windows visual-c++ atl wdk

我正在使用Windows 7下的Visual C ++ 2010创建一个项目。 我需要使用ATL库,实际上我安装了Windows WDK(版本7600.16385.1) 特别是我使用WDK的以下库

  • setupapi.lib
  • atls.lib
  • atlsd.lib
  • atl.lib
  • atlthunk.lib

编译我的代码我有以下警告:

atls.lib(stdafx.obj):警告LNK4254:“ATL”部分(50000040)合并为具有不同属性的“.rdata”(40000040)

atls.lib(stdafx.obj):警告LNK4078:找到具有不同属性的多个“ATL”部分(40301040)

有谁知道如何修复它?我担心可能的内存泄漏或访问我的数据有一些问题。 感谢

1 个答案:

答案 0 :(得分:9)

我对Visual Studio 2010 Express Edition和从WDK 7.1获取的ATL也有同样的警告。似乎atl libs的构建方式与您从atlbase.h获取的项目不同。我更改了atlbase.h中的设置

#pragma section("ATL$__a", read, shared) => #pragma section("ATL$__a", read)
#pragma section("ATL$__z", read, shared) => #pragma section("ATL$__z", read)
#pragma section("ATL$__m", read, shared) => #pragma section("ATL$__m", read)

并且警告消失了。