HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。

新着トピックス

「Windows SDK for Windows 7」のインストールと設定

 Windows 7ではタスクバーが大きく変更されたほか、Office 2007で新しく採用された「リボンUI」がOS標準機能としてサポートされるなど、新たな機能が追加されている。これらの新機能を利用したソフトウェアを開発したい場合は、Visual Studioに加えてWindows 7向けのWindows SDK(Windows SDK v7.0、Windows SDK for Windows 7などとも呼ばれる)が必要だ。これをインストールすれば、インテル コンパイラーでもWindows 7の最新機能を利用したソフトウェアを開発できるようになる。

 Windows SDK for Windows 7はマイクロソフトのWebサイトからダウンロードできる。32ビット(X86)版および64ビット(AMD64)版、そしてItanium版の3種類が用意されているので、利用する環境に対応したものをインストールしよう。なお、オンラインで必要なコンポーネントのみをダウンロードしてインストールできる「Webインストール版」と、DVD-Rなどに書き込んでからインストールする「ISOイメージ版」の2種類があるが、ISOイメージ版はファイルサイズが約1.4GBと大きいので注意してほしい。

 インストーラで必要な操作は、ライセンスへの同意とインストール先、そしてインストールするコンポーネントを選択するだけだ(図15〜18)。コンポーネントとしてはライブラリやヘッダーファイルに加えて、サンプルやVisual C++関連ファイル、開発・デバッグ用ツールなども含まれている。サンプルにはWindows 7の新機能を使うためのサンプルコードも多数含まれているので、これらに興味がある場合はインストールしておくと良いだろう。

 なお、Windows SDK for Windows 7はVisual Studio 2008に含まれるWindows Vista向けのWindows SDK v6.0Aと共存できるようになっており、Windows SDK for Windows 7のインストール直後はWindows SDK v6.0Aが利用されるように設定されている。そのためWindows SDK for Windows 7を利用するには、スタートメニューの「Microsoft Windows SDK v7.0」以下、「Visual Studio Registration」内にある「Windows SDK Configuration Tool」を起動し、ここで設定を行う必要がある(図19、20)。

Windows 7アプリケーションのコンパイル

 Windows SDK for Windows 7のインストールと設定が終わったら、Windows 7の新機能を利用したアプリケーションをコンパイルしてみよう。Windows SDK for Windows 7をインストールすると、デフォルトではシステムドライブの「Program Files¥Microsoft SDKs¥Windows¥v7.0¥Samples¥」ディレクトリ以下に多数のサンプルがインストールされる。今回はその中で、タスクバーの新たな機能である「ジャンプリスト」と、新たなUI「リボン」を利用するアプリケーションをビルドしてみた。

 Windows 7で新たに登場した機能「ジャンプリスト」は、タスクバーに表示されているアプリケーションアイコンを右クリックしたときに、アプリケーション独自のメニューを表示する機能だ。たとえばInternet Explorer 8の場合、「よくアクセスするサイト」や「タスク」といったものが表示される(図21)。また、リボンUIはOffice 2007で採用されている新たなツールバーUIだ。簡単に言えばタブで切り替えられる大きいサイズのツールバーである。

 ジャンプリストを利用するサンプルは先のサンプルディレクトリ以下「winui¥shell¥appshellintegration¥AutomaticJumpList¥」および「winui¥shell¥appshellintegration¥CustomJumpList¥」ディレクトリ内に、リボンUIを利用するサンプルは「winui¥WindowsRibbon¥」ディレクトリ内に収録されている。ここでは、ジャンプリストのサンプルとして「AutomaticJumpList」を、リボンUIのサンプルとして「HTMLEditRibbon」をインテル コンパイラーでコンパイルしてみた。

 まずAutomaticJumpListだが、これは「File」メニューで選択したファイルを、ジャンプリストの「最近使ったもの」項目に追加する、というものだ。コンパイルはディレクトリ内のソリューションファイル(AutomaticJumpListSample.sln」をVisual Studioで開き、ソリューションをインテル コンパイラーでコンパイルするように設定してコンパイルを実行するだけで完了した。特にコンパイルエラーなどは発生せず、作成したアプリケーションも問題なく動作している(図22)。なお、このサンプルを実行する際、初回起動時にはファイル形式の登録のため管理者権限で起動を行う必要がある。

 続いての「HTMLEditRibbon」はリボンUIを備えたHTMLエディタというものだ。こちらも同様にVisual Studioでソリューションファイルを開き、インテル コンパイラーでコンパイルを行ったところ、「CHTMLEdView」クラス内でいくつかのエラーが表示されてしまった(図23)。

 これは、「CHTMLEdView」内で定義している関数と、その継承元である「CHTMLView」クラスで用意されている仮想関数の定義が食い違っていたからである。Visual C++の場合これはエラーとはならないが、インテル コンパイラーはより厳密なチェックを行うためエラーとなっているようだ。これは、次のリスト1のように修正を行うことで簡単に解決でき、作成したソフトウェアも問題なく動作した(図24)。

リスト1 HTML!EditRibbonサンプルの修正個所
・HTMLEdView.hの66行目
    void OnDocumentComplete();
を以下のように修正
    void OnDocumentComplete(LPCTSTR lpszURL);

・HTMLEdView.cppの135行目
void CHTMLEdView::OnDocumentComplete()
を以下のように修正
void CHTMLEdView::OnDocumentComplete(LPCTSTR lpszURL)