1

我正在尝试使用 Windows SDK 7.1 中的 MS 命令行工具构建 ATL 程序。我已经安装了 Windows Driver Kit 7.1.0 以获得 ATL 头文件和库,并且大部分情况下我都成功了。我可以使用 MSBuild 或用于 nmake 的自定义 makefile 为 x86 系统完美构建它,但是当我尝试为 x64 构建它时,我收到以下错误:

<project>\include\atl71\atlplus.h(21): error C3360: 'ATL4': cannot create IAttributeHandler [<project>.vcxproj]
<project>\include\atl71\atlplus.h(21): fatal error C1903: unable to recover from previous error(s); stopping compilation [<project.vcxproj]
  0 Warning(s)
  2 Error(s)

真正令人讨厌的是,使用完全相同的解决方案文件和配置,Visual Studio 可以很好地构建 x64 版本。显然我遗漏了一些东西,因为所有这些工具都使用相同版本的 cl.exe 来执行实际编译......

4

2 回答 2

0

我使用完整的 DevStudio IDE 遇到了同样的问题。我所做的和你完全一样(将 Win32 设置复制到 x64 目标平台)我配置管理器,但一直收到同样烦人的消息。我通过不使用可在项目属性页面中选择的 WinSDK v7.1 工具链来修复它:具体来说,在“配置属性”节点中的“常规”项中。该属性称为“平台工具集”(同样,所有这些都在 IDE 中),我将下拉列表中的选择从 Windows7.1SDK 更改为 v100。后者声称使用 DevStudio-only 工具和实用程序来构建几乎所有内容(例如 HTML Help Compiler 仍然是外部的)。

我希望这个花絮可能有助于引导你朝着正确的方向前进。祝你好运!

S.肖恩·斯塔格纳

于 2014-08-29T12:20:42.860 回答
-1

使用以下脚本创建一个批处理文件,然后运行它:

pause
setx DevEnvDir %%VSINSTALLDIR%%\Common7\IDE\
setx Framework35Version v3.5
setx FrameworkDir C:\Windows\Microsoft.NET\Framework\
setx FrameworkVersion v4.0.30319
setx LIBPATH %%FrameworkDir%%%%FrameworkVersion%%;%%FrameworkDir%%%%Framework35Version%%
setx PATH ""
setx PATH "%%DevEnvDir%%;%%VSINSTALLDIR%%\VC\Bin;%%VSINSTALLDIR%%\Common7\Tools;%%FrameworkDir%%%%FrameworkVersion%%;%%FrameworkDir%%%%Framework35Version%%;%%VSINSTALLDIR%%\VC\VCPackages;%%PATH%%"
setx VC_PROJECT_ENGINE_NOT_USING_REGISTRY_FOR_INIT 1
setx VCINSTALLDIR %%VSINSTALLDIR%%\Bin\
setx VS100COMNTOOLS ""
setx VSINSTALLDIR "D:\Program Files\Microsoft Visual Studio 10.0"
于 2013-03-20T10:01:39.617 回答