技術 FAQ
● Visual C++ 5.0 Technology Preview Internet Explorer 対応版と Visual C++ 6.0 との大きな違いは何ですか ?
Technology Preview に含まれていた機能は、Visual C++ 6.0 の開発中に飛躍的に発展しました。その結果、Technology Preview のライブラリと Visual C++ 6.0 のライブラリでは、コードとパフォーマンスに大きな違いがあります。特に、OLE DB のコンシューマ テンプレートとプロバイダ テンプレートは、使いやすさとパフォーマンスの両方が向上しました。Technology Preview はベータ版ですので、リリース コードをビルドしていた場合はそのコードを Visual C++ 6.0 でビルドし直してください。
● IntelliSense はカスタム コードでも機能しますか ? 自分で作成したヘッダー ファイルで [メンバ自動表示] ドロップ ダウン リストを使用するにはどのようにすればよいのですか。
IntelliSense のすべての機能は、Microsoft が提供するコードと、カスタム コードの両方に適用されます。独自のヘッダー ファイルで IntelliSense を有効にするには、ヘッダー ファイルの保存場所をインクルード パスに追加します ([ツール] メニュー、[オプション] ダイアログ ボックス、[ディレクトリ] タブ)。
● エディット・コンティニュー機能は、どのような条件で機能しますか ?
エディット・コンティニューは、デバッグセッション中にソースの修正を可能にする画期的な機能です。この機能は、ソースの修正された部分のみをコンパイルし、メモリ上の実行イメージに適用することによって実現しています。したがって、プロジェクト全体をビルドする必要のある以下の操作を行った場合はエディット・コンティニューの機能を使用することができません。
- ヘッダー ファイルの編集
- C++ のクラス定義の編集
- 関数プロトタイプの編集
- グローバル/スタティック コードのほとんどの編集
● 開発チームが Visual C++ 5.0 (またはそれ以前) から Visual C++ 6.0 に移行するのを支援するリソースとしては、何が用意されていますか ?
Visual C++ 6.0 では、移行作業をできるだけ簡単かつ柔軟に行えるようにしています。詳細は『Visual C++ プログラマーズ ガイド』の「移植とアップグレード」の節を参照してください。このオンライン マニュアルは、パッケージ製品に付属している CD-ROM に収められています。
● Visual C++ 6.0 でグローバル関数、グローバル メソッド、およびグローバル変数のドロップ ダウン リストを表示する方法はありますか ?
Ctrl キーを押しながらスペース キーを押します。表示されるリストには、Win32、MFC、ATL など、インクルード パスに含まれているすべてが表示されます。
● 拡張された Win32 Console AppWizard は、どのタイプのアプリケーションを作成できるのですか ?
Console AppWizard は、さまざまなコンソール アプリケーションを生成するように拡張されました。次の 4 つのタイプのプロジェクトを作成できます。
- 空のプロジェクト -- デフォルトのソース ファイルはありません。
- 単純アプリケーション -- .cpp ファイル (および空の main 関数)、およびプリコンパイルされたヘッダー ファイル。
- "Hello World!" アプリケーション -- コンソールに "Hello World!" を出力するコード (.cpp ファイルおよび .h ファイル)。
- MFC をサポートするアプリケーション -- CString などにアクセスするために MFC を初期化するコードなど。
● Visual C++ 6.0 ではメンバ テンプレートがサポートされていますか ?
はい。メンバ テンプレートは、Visual C++ 6.0 と Visual C++ 5.0 でサポートされています。ただし、Visual C++ 5.0 のユーザーは、Visual Studio 97 Service Pack 3 をインストールする必要があります。
● Visual C++ 6.0 で Internet Explorer 4.0 が必要な理由を教えてください。
Visual C++ 6.0 は、プログラム上および開発環境上の理由から Internet Explorer 4.0 を必要とします。開発環境の面では、Visual C++ 6.0 (および Visual Studio 6.0 のすべてのプログラム) は、HTML ヘルプ形式でヘルプとオンライン マニュアルを表示します。現在、Microsoft のヘルプ システムでは、HTML ヘルプが標準になっています (Windows 98 は HTML ヘルプを使用しています)。そして、Internet Explorer 4.0 は、HTML、ダイナミック HTML、およびイメージの解析と表示を行う機能を持つ、HTML ヘルプのエンジンです。以前のバージョンの Internet Explorer を使用して HTML ヘルプを実行することもできますが、検索やキーワード検索などの機能が大幅に制限されます。
プログラムの面では、Internet Explorer 4.0 とその高度にコンポーネント化されたアーキテクチャによって、インターネットと Web のブラウズ機能をアプリケーションに組み込むことができます。したがって、Internet Explorer の WebBrowser コントロールに C++ ラッパーを提供する、MFC の新しい CHtmlView クラスと ATL の新しい HTML コントロールは、どちらも Internet Explorer 4.0 がインストールされている必要があります。Internet Explorer 4.0 に付属するコモン コントロールなどのコンポーネントは、Visual C++ からアクセスすることができ、Internet Explorer 4.0 でインストールされる DLL を必要とします。
● これらのテクノロジ (Internet Explorer 4.0 のコンポーネント) を使用して構築したアプリケーションは、Internet Explorer 4.0 がインストールされていない場合、どのように動作しますか ?
これらのテクノロジを使用して構築されたアプリケーションは、実行することはできますが、Internet Explorer 4.0 によってインストールされるコンポーネントのコードを使用している場合には、そのアプリケーションの重要な部分が使用できないことがあります。たとえば、CHtmlView を使用する MFC アプリケーションは、Internet Explorer 4.0 の WebBrowser コントロールが使用できないコンピュータでは、実行時に "ビューを作成できません" というメッセージが表示されます。この場合には、Internet Explorer 4.0 をインストールする (完全または最小インストール) などの解決方法があります。
● ATL オブジェクト ウィザードのライトオブジェクトとは何ですか ? また、このオブジェクトは Visual C++ 6.0 のウィザードの一部である新しい HTML コントロールとはどう違うのですか ?
ライトオブジェクトは、ユーザー インターフェイスがサポートされていない点を除けば、Internet Explorer の中での実行に必要なインターフェイスが含まれています。このインターフェイスを使用すると、Internet Explorer の中で実行される、ユーザー インターフェイスのないコンポーネントやコントロールを作成できます。新しい HTML コントロールは、COM プロジェクトおよび ActiveX コントロールに HTML とダイナミック HTML のユーザー インターフェイスを追加することを目的としています。
● MFC の CHtmlView クラスを使用するには、TCP/IP スタックがインストールされている必要がありますか ?
いいえ。CHtmlView を使用してローカル コンテンツにアクセスする場合は、TCP/IP スタックが存在している必要はありません。ただし、ドキュメントがネットワーク上にあり、インターネット プロトコルを使用してアクセスする場合は、TCP/IP スタックが必要です。
● HTML ファイルを MFC アプリケーションに組み込んで、CHtmlView アプリケーションがローカル システムやネットワークからドキュメントを読み込まなくても済むようにすることはできますか ?
はい。Visual C++ 6.0 には新しい HTML リソース タイプが追加されており、開発者は主要な UI エレメント、スタート ページ、またはその他のコンテンツが常にインストールされ、使用可能となるようにできます。HTML リソースから参照されるイメージやその他のコンテンツも、リソース スクリプトに追加できます。
● MFC の新しい CHtmlView クラスを利用して WebBrowser コントロールをプログラミングする利点を教えてください。
MFC を使用して WebBrowser コントロールを操作することには、大きな利点がいくつかあります。MFC ではタブ、再描画、および OLE のアクティブ化を処理できるので、これらの開発に必要だったリソースを節約できます。CHtmlView は doc/view アーキテクチャを使用し、MFC のプログラミング モデルと一貫性があります。また、直接操作では VARIANT を処理する必要がある場合に、MFC では C++ タイプのラッピングが可能です。
● HTML Help Workshop はどこに格納されていますか ?
HTML Help Workshop は、単体製品製品 (Visual C++ 6.0) と Visual Studio スイート全体のどちらの場合でも、CD1 の \HTMLHelp ディレクトリに収められています。