« error MSB8008: 指定したプラットフォーム ツールセット (v110) はインストールされていないか無効です | トップページ | WinHTTP »

2013年11月10日 (日)

VisualStudio 2012 Express EditionにWTL

Visual Studio 2012 Express Edition にWTL
いきなり下記エラー
エラー 1 error C1083: include ファイルを開けません。'atlbase.h': No such file or directory xxxxxxxxxxxxxxx\stdafx.h 25 1 XXXXXXXXXX
VC++ディレクトリの「インクルード ディレクトリ」に下記を追加
C:\WinDDK\7600.16385.1\inc\atl71;
で、下記エラー
エラー 1 error C2065: '_stdcallthunk' : 定義されていない識別子です。 xxxxxxxxxxxxxxx\stdafx.h 33 1 XXXXXXXXXX
stdafx.hをみると
// This project was generated for VC++ 2005 Express and ATL 3.0 from Platform SDK.
// Comment out this line to build the project with different versions of VC++ and ATL.
#define _WTL_SUPPORT_SDK_ATL3
ってかいてある。ATL3.0ではないので、いわれるがままにコメントアウト
// #define _WTL_SUPPORT_SDK_ATL3
以下を追加するように書いてあるページがヒットするが追加しない。たぶんATLバージョンが古いかと
#include <atlstdthunk.h>
で、次は下記エラー
エラー 1 error C1083: include ファイルを開けません。'atlapp.h': No such file or directory xxxxxxxxxxxxxxx\stdafx.h 43 1 XXXXXXXXXX
WTLをincludeしてない。
VC++ディレクトリの「インクルード ディレクトリ」に下記を追加
D:\Lib\WTL81_12085\Include;
で、次は下記エラー
エラー 1 error LNK1104: ファイル 'atlsd.lib' を開くことができません。 xxxxxxxxxxxxxxx\LINK XXXXXXXXXX
WinDDKのライブラリパス追加が必要なので、VC++ディレクトリの「ライブラリ ディレクトリ」に下記を追加
C:\WinDDK\7600.16385.1\lib\ATL\i386
で、最後のエラー
エラー 2 error LNK2019: 未解決の外部シンボル "void * __stdcall ATL::__AllocStdCallThunk(void)" (?__AllocStdCallThunk@ATL@@YGPAXXZ) が関数 "public: static void * __cdecl ATL::_stdcallthunk::operator new(unsigned int)" (??2_stdcallthunk@ATL@@SAPAXI@Z) で参照されました。 xxxxxxxxxxxxxxx\xxxxxxxxxxxxxxx.obj XXXXXXXXXX
http://comments.gmane.org/gmane.comp.web.chromium.devel/27116
によれば
I've seen these errors with Express versions but not Professional. Linking against atlthunk.lib usually fixes it with Express.
とのことで、「リンカー」-「入力」-「追加の依存ファイル」 に atlthunk.lib を追加
あとは下記ワーニングのみ
1>atlsd.lib(atlcommodule.obj) : warning LNK4078: 複数の 'ATL' セクションが見つかりました。これらは異なる属性 (40301040) を持っています。
1>XXXXXXXXXX.obj : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>stdafx.obj : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atldebugapi.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlfuncs.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(externs.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atltrace.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlbase.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atlcommodule.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(stdafx.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(atltracemodulemanager.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
1>atlsd.lib(allocate.obj) : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040) に異なる属性を伴ってマージされています
http://stackoverflow.com/questions/10116800/atl-link-warnings
によれば無視しろということなので /ignore:4254 /ignore:4078 を「リンカー」-「コマンドライン」-「追加オプション」に追加
ダイアログ起動確認!

|

« error MSB8008: 指定したプラットフォーム ツールセット (v110) はインストールされていないか無効です | トップページ | WinHTTP »

Windows」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1009744/53888632

この記事へのトラックバック一覧です: VisualStudio 2012 Express EditionにWTL:

« error MSB8008: 指定したプラットフォーム ツールセット (v110) はインストールされていないか無効です | トップページ | WinHTTP »