2005年12月21日

Visual C++ 2005 Express Editionで実験: Platform SDKのMFC、ATLを使ってみる

さてさて、VCEEをインストールしたところで実験。

VCEEにはMFCATLは含まれていない。……が、実はPlatform SDKに含まれている。もしこれが使えるのならば、只で有料版とほぼ同等の環境が構築出来ると云う事になる。という訳で、実際にビルド出来るかどうが試してみた。

……とはいえ、実はMFCATLも使った事がない。そこでVC6.0のウィザードにて適当なMFCATLのスケルトンを作成し、それをVCEEでビルド。

まずはMFC

c:\program files\microsoft platform sdk\include\mfc\afxwin.h(1227) : fatal error C1083: include ファイルを開けません。'afxmsg_.h': No such file or directory

(; ゚Д゚)ナニソレー
確かに、そんなファイルは見つからない。いろいろと調べてみると、ヘッダの内容がそのまま書かれたページを発見。グローバル変数のexternも関数宣言もないのをイイ事にそのままコピペして勝手にPlatform SDKのディレクトリにコピーしてみた。

LINK : fatal error LNK1104: ファイル 'mfc42d.lib' を開くことができません。

(; ゚Д゚)ナ、ナンダッテーーーー
流石に.libが無いとかシャレにならない。という訳で挫折。

……で、既に結果が見えているような気もするが、ATLもビルドしてみる。

C:\Program Files\Microsoft Platform SDK\Include\msxml.idl(52) : fatal error C1083: include ファイルを開けません。'xmldom.idl': No such file or directory

これは、私のミスだった。xmldom.idlはPlatform SDKのインストールの際、"IE SDK"を選んでいないとインストールされないとの事。

LINK : fatal error LNK1104: ファイル 'atlthunk.lib' を開くことができません。

○| ̄|_

更に調べてみると……

Visual C++ 2005 Express Edition 絡みで,「Windows Server 2003 SP1 Platform SDK に ATL/MFC が入っている」という話がちらほら紹介されてますが,Visual C++ 2005 の上位 Edition と同等の環境が構築できるわけでは無いことに注意してください.

次に問題の ATL/MFC の違いについて.以下のように Windows Server 2003 SP1 Platform SDK に付属するものはだいぶバージョンが古いようです.

_MFC_VER _ATL_VER
Windows Server 2003 SP1 Platform SDK 0x0600 0x0300 *2
Visual C++ .NET 2003 0x0710 0x0710
Visual C++ 2005 0x0800 0x0800

VC6.0付属のヤツと同じじゃん。
苦労しないで普通に6.0のディレクトリにパス通した方が早いという結果に……

結論: Platform SDKMFC or ATL使って開発?やめとけ、死ねるから。てかビルドできないライブラリなんて公開するなよ、Microsoft!!

因みに、VC6.0のディレクトリを指定してビルドしてみると、MFCの方はビルド出来たが、ATLの方は大量のエラーが出た。うーん、MFCATL使いたいんなら上位ヴァージョンを買え!!って事なのか……

posted by 天井冴太 at 20:31| Comment(1) | TrackBack(0) | Other | 更新情報をチェックする
この記事へのコメント
私も同じこと考えました
Posted by at 2009年04月19日 15:40
コメントを書く
コチラをクリックしてください

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。