Kuroda Software Service
Visual C++ 再入門
 

コンテンツ内メニュー

表示モード 全項表示  部分表示



マークの色と認証の関係

一般公開

無料認証

購入認証


認証についての説明

無料アカウント作成フォーム

有料ページ購入フォーム


ほかのコンテンツトップページ

Visual C++ 再入門

HTMLを活用したWIN32アプリケーションの作成

l         このコンテンツの目的

 プログラムはコンピューターを動作させるためのものですが、沢山の開発手法(言語)が存在します。でもCPUはさまざまな言語を理解しているわけではなく、最終的に生成されるマシン語を実行しているのです。ですからマシン語を間接的に生成する言語は実行速度が劣り、生成された中間コードからソースコードを復元することも可能なのです。また、簡単な言語は結局のところ「こういった機能が必要だろう」と用意されたマシン語モジュールを呼び出すことになりますので、あらかじめ用意されていないことはできないという可能性があります。

 コンピューターを最も自在に扱う方法がC++プログラミングですが、最も難解であることも事実です。CやC++の根底にある考え方は「プログラマーはミスを犯さない」という前提です。CPUは与えられたマシン語モジュールを正しいと仮定して身を委ねますから「ここが間違っています」という指摘をしません。ですからプログラマー自身がプログラムの内容を厳密に管理する必要があるのです。

 従来のC++によるWIN32アプリケーションはCによるWIN32アプリケーションと本質的になんら変わりませんでした。結局、巨大なメッセージループにcase文を書かなければならなかったのです。C++がもたらす最大の福音はCOMプログラミングを容易に記述できることですが、入門者向けの解説情報が乏しくCOMとは難解なものという観念が定着してしまっているように感じます。

 このコンテンツはC++によるHTMLウインドウの活用とHTML機能の拡張というシナリオを通じてC++による新たなWIN32アプリケーション開発手法を紹介するものです。このコンテンツを通じてひとりでも多くのプログラマーが、最も基本的であり最も柔軟性に富むC++の魅力に気づかれることを願ってやみません。

   Kuroda Software Service 代表 黒田英之 MAIL ask@kuroda.bglb.jp

l         ポリシー

 C++はその柔軟性から「言語を作る言語」と表現することができます。ですから往々にして、それを書いているプログラマー独自の言語が形成され、大変読みにくいものになる可能性があります。このコンテンツはできるかぎり多くの方が直感的に理解できる内容とするために以下のポリシーの元に作成されています。

1.      可能なかぎり専門用語は避ける。

2.      ヘッダファイルを作成せず単一CPPファイルで説明する。

3.      ウイザード等の自動生成コードを使用しない。

4.      マルチバイト環境とユニコード環境で動作するコードとする。

5.      32ビット環境と64ビット環境で動作するコードとする。



l         シナリオ

コンテンツ全体は2つの公開ページ、4つの無料ページ、2つの有料ページで構成されています。無料ページはメールアドレスを登録することで表示され、有料ページはコンテンツを購入することで表示されます。このコンテンツの価格は月額5,250円です。

1.      「最初ののプログラム」(公開)
コンソールを表示するWIN32プログラムで、Windowsシステム上のアプリケーションに必須な要素を学習します。

2.      HTMLダイアログの表示」(公開)
MSHTML.DLLから動的にShowHTMLDialogEx関数アドレスを取得しHTMLダイアログを表示します。

3.      HTMLリソースの表示」(無料)
HTMLファイルをリソースとしてEXEファイルに保存し表示する方法を紹介します。また、画像等のファイルもリソースとして保存し表示する工夫についても解説します。

4.      HTMLオブジェクトの操作」(無料)
HTMLオブジェクトをC++から操作するために必要な手続きを単純な関数呼び出しに置き換えます。

5.      「正規表現置によるコード生成」
ヘッダファイル中のインターフェース宣言を正規表現置き換えで利用する方法を紹介します。

6.      「ディスパッチの作成」(無料)
INTERFACEDATA構造体から動的にITypeInfoを生成しHTMLスクリプトへC++コードのディスパッチを公開する手法を紹介します。

7.      HTMLウインドウのサブクラス化」(有料)
HTMLダイアログをサブクラス化し、ウインドウスタイルを調整してアプリケーションウインドウとします。また、引数としてディスパッチを渡した場合のデッドロックを回避する方法について解説します。

8.      「スレッドブロックへの対応」(有料)
ディスパッチでダイアログボックスの表示等を行った場合、HTML側ウインドウの再描画を抑制してしまう問題の解決方法を解説します。

l         ソースコードのコンパイル環境

 Visual Studio各バージョンでC++、WIN32 Applicationプロジェクトを生成そます。この時「空のプロジェクト」(Empty project)を選択することが重要です。作成したプロジェクトには任意な名前のCPPソースファイルを追加し、サンプルソースコード貼り付けてコンパイルします。

 

l         マルチバイト環境とユニコード環境の切り替え

 メニューからプロジェクトのプロパティーダイアログを表示することによって両環境を切り替えることができます。クラス、関数を追加する度に両環境で実行できることを確認することは大変重要なことです。

 

©クロダ ソフトウェア サービス programmed by hidebou