……という訳で、前回の続きである。アレから10日も書かんで何やっとったか!!という不満は山の向こうにポイして頂きたい。
…………イヤほんとすみません。
VSのIDEから呼び出して……アレレ?
前回インストールした新しいMSDNライブラリである2006年6月版(以降新ライブラリと呼ぶ)。
"スタート メニュー\プログラム\Microsoft Developer Network"下にショートカットが作成される。VSEE添付のライブラリ(以下旧ライブラリと呼ぶ)とは大違い。
起動すると新ライブラリのホームページが表示される。
…………問題なくインストールされているようだ。
ではIDEから呼び出してみよう。[ヘルプ]→[カテゴリから検索]。よし、ちゃんと呼び出せて……
…………あ、あれぇ?これって旧ライブラリの方じゃん!!
新ライブラリと旧ライブラリの違い
少し話はズレるが、ここで新ライブラリと旧ライブラリの相違点を。
まず、『目次』の内容が全然異なる。旧ライブラリは『(フィルタ無し)』に出来ないので分かりづらいが。
同じ項目は『[ヘルプに関するヘルプ] (Microsoft Document Explorer ヘルプ)』しかない。逆に新ライブラリには『Visual Studio 2005 Express Edition 対応 MSDN ライブラリ』という項目が無いのが分かる。
さらにURLも異なる。図は新/旧ライブラリでC言語のprintf()のページを開いたところだ。旧ライブラリは『ms-help://MS.VSExpressCC.v80/MS.NETFramework.v20.ja/』で始まるのに対し、新ライブラリは『ms-help://MS.MSDNQTR.v80.ja/MS.MSDN.v80/MS.VisualStudio.v80.ja/』で始まっている。
さらにもう一度先程の図を見て欲しい。タイトルバーの内容も異なるのが分かる。旧ライブラリはprintf、_printf_l、wprintf、_wprintf_l - Microsoft Visual Studio 2005 Express Editions ドキュメント - Microsoft Document Explorer
、新ドキュメントはprintf、_printf_l、wprintf、_wprintf_l - MSDN ライブラリ - Visual Studio 2005 - Microsoft Document Explorer
となっている。
新ライブラリを呼び出したい
新ライブラリをインストールしたのにそれが呼ばれない事があるなんてどうかしている。へルプのオプションでオンラインのドキュメントを優先して探すようにすれば問題無いのかもしれないが、それじゃ新しいヘルプをインストールした意味が無い。そもそも常時接続環境だなんて誰が言った?ノートPCなら外に持ち出す事だってあるのだ。精神衛生上、非常によろしくない。
……というわけで、IDEからヘルプを呼んだときに、新ライブラリの方を参照するようにしてしまいたい。しかし、呼び出し先ヘルプを換える設定が見当たらない。VC++6.0には在ったんだけどなぁ……
……そんな時こそレジストリ、である。M$は普通ならハードコーディングしそうな値までレジストリに登録している事が多いように感じる。こういう場合だけは「レジストリ万歳!!」と叫びたくなる。なお、今回はVisual C++ 2005 Express Editionについて設定する。VC#やVC++でも非Express Editionの場合は似たようなエントリがあると思うので、読み替えて欲しい。
当たり前のお約束だが、レジストリを弄る事は、最悪Windowsが起動しないようになってしまう可能性がある。細心の注意を払って書き換えて欲しい。レジストリを書き換えてトラブッたとしても天井冴太は責任を負いかねる。
さて、アッチコッチ書き換えたりして探してみると……あったあった!
『HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VCExpress\8.0\Help\0x0411』がVisual C++ 2005 Express EditionのIDEが呼び出すヘルプに関する設定のようだ。
- 上記キーの『Collection』の値を『{880B650E-4BBD-4599-9703-F957643D1AC9}』に書き換える。
- サブキー『{880B650E-4BBD-4599-9703-F957643D1AC9}』を作成し、そこに文字列型で名前『Filename』値『ms-help://MS.MSDNQTR.v80.ja』と、名前『VS_Docs』値『8.0』を作成
上記『{880B650E-4BBD-4599-9703-F957643D1AC9}』は新ライブラリのGUIDのようだ。なお、この値は『ms-help://MS.MSDNQTR.v80.ja』を検索して出てくる『HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDN\8.0\Help\0x0411\{880B650E-4BBD-4599-9703-F957643D1AC9}』から得る事が出来た。これから先、さらに新しいライブラリが公開されてもこの方法でGUIDを調べることが出来そう。
これで新ライブラリを呼ぶ事が出来るようになった筈だ。
でもまだ完璧じゃない
これでIDEからの呼び出しは一通り動く。しかし、『カテゴリから検索』周りが上手くいかない。設定ファイルが『C:\Program Files\Common Files\Microsoft Shared\VS Help Data\8.0\Pages\1041』以下にXML形式で格納されている所までは突き止めたが……。うーん、どうすりゃいいんだ!?誰かhackerな人、後は頼んだ!!
MSDN ライブラリ 2006年6月版、無償配布中 - GIGAZINE