1

Windows SDK 7.1 の MS コマンド ライン ツールを使用して ATL プログラムをビルドしようとしています。ATL ヘッダーとライブラリを取得するために Windows Driver Kit 7.1.0 をインストールしましたが、ほとんどの場合、成功しています。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 ターゲット プラットフォームにコピーしました) I Configuration Manager を実行しましたが、同じ迷惑なメッセージが表示され続けました。プロジェクトのプロパティページで選択可能なWinSDK v7.1ツールチェーンを使用しないことで修正しました。具体的には、「構成プロパティ」ノードの「一般」項目内です。このプロパティは "Platform Toolset" と呼ばれ (これもすべて IDE 内にあります)、ドロップダウンでの選択を Windows7.1SDK から v100 に変更しました。後者は、ほぼすべてのビルドに DevStudio 専用のツールとユーティリティを利用することを目的としています (たとえば、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 に答える