「○○という機能の実現方法を教えてください。×××という関数を使えばいいことは分かったのですが、英語で書かれているためよく分かりません。よろしくお願いいたします」
メーリングリストやニュースグループでよく見かけるこの質問形式。不幸にもDelphiやVBを買わずにVCを買ってしまい、チュートリアルを見ながらMFCを勉強して「私って結構いけてる?」と思ったのもつかの間、一歩飛び出たプログラミングをしようと思って突き当たる壁。あまりにも膨大なドキュメント数、しかも英文。これを読むのはあまりにも大変と思ったために前述した文を安易に投稿したら……おそらくあまりにも素っ気ない説明とともに、「英語が読めないってくらいで人に頼るんじゃねーよ、バーカ」と暗に罵った丁寧なおしかりの言葉が返ってくることでしょう。
しかし、これはどちらも当然の行動を取ったまでだと、そう筆者は考えます。
筆者は、今この両者の間にいると感じています。そこで、これからVCプログラミングを始める上で、変な質問をしないためのヘルプファイルの読み方というのを書いていこうと思います。 |
ふたつの検索方法
「ヘルプ」−「検索」(もしくは「双眼鏡の左上に?」ボタン)を選択すると、検索ダイアログが表示されます。このダイアログにはふたつのページがあります。ひとつは「索引」、もうひとつは「クエリー」です。
何か分からないことがあった場合、まず「索引」を使います。まずキーワードを入力します。例えば「メニュー」と入れてみましょう。そうすると、下の「トピック」に、キーワードと関連したトピックが表示されます。ここでは「メニュー」とか「メニュー エディタ」とか表示されていると思います。各トピックをダブルクリックすると、そのトピックに関連したページが一番下に表示されます。「メニュー」をダブルクリックすれば、「メニューエディタの使用」とか「ポップアップメニュー」とかがあると思います。そこで、各ページをダブルクリックすれば、そのページが晴れて表示されるというわけです。
さて、もうひとつの検索方法「クエリー」です。クエリーは、いわゆる「全文検索」というもので、ヘルプファイルすべての文章から特定の単語を検索することができます。ダブルクォーテーション(")で囲めば複数の単語からなる文字列でも検索できますし、アスタリスク(*)を使えば先頭だけしか分からない文字等も検索できます(ただし、この場合非常に時間が掛かります)。また、ある英単語を入れたときには、自動的にその形容詞形など変形させて検索してくれます。 |
サブセット
サブセットとは、検索するページを限定することです。MSDNをインストールしている場合、検索項目の中には「Excel」や「Access」といった他のアプリケーションの情報も大量に入っています。また、プログラミングの情報でもVBやVJといった他の開発環境も入っています。こういったページすべてから検索するのはなんの意味もありません。そこでサブセットが必要になってくるわけです。
クエリーのページで「サブセットの定義」ボタンを押します。まず「サブセット名」を書き込んでおきます(好きな名前にしましょう)。次に、検索したいページを追加します。ツリーを開いたあとそのページを選択し追加を選択を選択すれば、選択したページより下のすべてのページが加わります。 |
主要英語ページ
さて、今度は英語ページのサブセットを作製することになりますが、そのために、膨大な量のページの中から特に必要なページを先に挙げておきます。また、それらのページの見方も説明します。 (注:以下「Microsoft Developer Network - Visual Studio Edition」を「MSDN」と略します) |
・MSDN/SDK Documentation/Platform SDK
ウィンドウズプログラミングの初歩的な説明。MFCを使わずにプログラミングする場合にはこのドキュメントを熟読することが必要ということです。ウィンドウズプログラミングの仕組みを知りたいときには読みましょう。ただし、あまりにも広範な情報が載せられている(OpenGLなんてものも入っている)ため、その中でも必要なものだけをサブセットに加えておくといいかもしれません。 特に、User Interface ServicesとWindows Base Serviceには普通のウィンドウズプログラミングに欠かせない情報が入っています。また、Referenceにはマクロや関数などがすべて書かれています。特にSHなになにという関数は普通の本にはなかなか載っていないので、このリファレンスで検索することは大きな意味を持つでしょう。 ちなみに関数リファレンスには「Quick Info」「Overview」「Group」のみっつのボタンが付いています。「Quick Info」にはどのOSで使用できるかとか、どのヘッダーファイルをインクルードすればいいのかとかが書かれています。「Overview」はそのAPIが属するグループの説明が書かれたページへと移動します。「Group」は、同系列の関数が一覧表示されているページへと移動します。 |
・MSDN/Knowledge Base/Knowledge Base/Microsoft Win32 Software Development Kit
・MSDN/Knowledge Base/Knowledge Base/Visual C++ Knowledge Baseというのは、すでに分かっているバグやその解決方法などが書かれている文章です(米ホームページにもあります。日本にも同名のものはあるのですが、中身が違います)。「もしかして、バグ?」と思ったらこのページをクエリー。特に、このKnowledge Baseには、多くのページにサンプルコードが付いています。英語が分からないときにはまずこのコードを試してみて、プログラムを理解してから英文を読んでみましょう。 |
・MSDN/Product Samples
とにかく大量のソースコードが入っています。逆に大量にありすぎて困ってしまう部分もありますが……とにかくサンプルが欲しい場合には重宝します。
ざっとみっつ上げてみました。もちろん、これ以外にも有用なドキュメントはあるでしょう。タイトルだけ見てとりあえずサブセットに追加してみるのもいいかもしれません。 |
英語の読み方
英文ドキュメントはヒジョーに読みづらいです。とりあえず次のようなことを試してみて、何とかしましょう。
・和訳ソフトに掛ける
・日本語ドキュメントと照らし合わせる
・サンプルコードと照らし合わせる
以上、簡単にですがヘルプの検索方法を見ていきました。ちなみにMSDNというのはMicrosoft Developer Networkの略で、マイクロソフトから年4回発行されているCD−ROMドキュメントです。年間購読すると3ヶ月に1回送られてくるそうです。MSDNにはレベルというものがあり、レベルが高くなるに連れて様々な特典があります(もちろん値段も高くなります)。レベル1には、普通の年間購読とは別に、パッケージソフトとして1回分のCD−ROMが販売されています。このパッケージ版が、今回VC5.0を初めとする開発環境におまけとして付いてきたというわけです。 |
おまけ:コードの歩き方
MFCにはそのソースコードが付いています。ドキュメントを見ても分からない部分も、コードを見れば一発で分かる部分も多くあります。そういった「ソースコードの見方」を紹介します。
コードには大まかにみっつの種類があります。
さて、では実際の検索方法を見ていきましょう。「編集」−「ファイルから検索」を選択します。ダイアログの「検索する文字列」に見つけたい文字列を、「検索するフォルダ」に先ほど書いたフォルダを選択して「検索」ボタンを押してください。そうすると、アウトプットに検索結果がどんどん表示されていきます。検索が終了したら、適当なものをダブルクリックしてください。ソースウィンドウにそのソースファイルの指定された行が表示されます。違ったら他の結果をダブルクリックすればいいのです。 |
(C)KAB-studio 1997, 1998 ALL RIGHTS RESERVED. |