さてさて、VCEEをインストールしたところで実験。
VCEEにはMFCやATLは含まれていない。……が、実はPlatform SDKに含まれている。もしこれが使えるのならば、只で有料版とほぼ同等の環境が構築出来ると云う事になる。という訳で、実際にビルド出来るかどうが試してみた。
……とはいえ、実はMFCもATLも使った事がない。そこでVC6.0のウィザードにて適当なMFC、ATLのスケルトンを作成し、それを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のディレクトリにコピーしてみた。
(; ゚Д゚)ナ、ナンダッテーーーー
流石に.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 SDKのMFC or ATL使って開発?やめとけ、死ねるから。てかビルドできないライブラリなんて公開するなよ、Microsoft!!
因みに、VC6.0のディレクトリを指定してビルドしてみると、MFCの方はビルド出来たが、ATLの方は大量のエラーが出た。うーん、MFCやATL使いたいんなら上位ヴァージョンを買え!!って事なのか……
