ソースコード - みる会図書館


検索対象: 月刊 C MAGAZINE 1993年7月号
62件見つかりました。

1. 月刊 C MAGAZINE 1993年7月号

the world 鰤 ro び曲曲 e 叩 sunglasses 00king a と言いました。残念なことに そうやって Open lnterface は , Virtual Graphics M しました。彼が C 十十 / Views を選んだの achine ライプラリというものを使って , そ 作ったコードをリソースの形式に戻して工 は , ライプラリのソースコードが含まれて ディットする , ということはてきないのて、 ういう状態を実現しています。このエンジ いるからて、す。ソースコードがあることに ンが , 必要なグラフィックスプリミティフ よって , コード中のバグの発見も容易にな す。 ばくが指定した仕様に従って Liant が作っ をすべて提供し , ネイテイプのウインドウ ります。だから逆に「少々バグがあってもよ た , サンプルアプリケーションには盛り込 システム〔各 GUI 系〕のすべてのイベントの い」という受容態度にもつながります。ソー まれていませんて、したが , C 十十 /Views に 面倒を見ます。て、すから , ネイテイプのル ス中のコメントがしつかり書かれているの は , 他にもいろいろ便利な機能があります。 ック & フィールを持ったアプリケーション て、 , ソースコードが非常に分かりやすいの たとえば , 印刷用の関数 , DDE, ヘルプフ も開発て、きるし , また , 別のルック & フィ て、す。デベロッパたちは , コーディングの ァイルなどて、す。これらの機能の多くが , ールを借りることもて、きます。デベロッパ ためにはプラウザを使いませんが , ソース 現時点て、は完全にはポータブルて、ありませ の立場としては , これはなかなか便利なこ コードを見るためにプラウザがたいへん便 ん。アプリケーションの移植作業はきわめ とてす。たとえば UNIX の Motif のポックス 利だと言っています。彼らがプラウザを使 て簡単て、 , コードを当のプラットホームへ の中て、マウスをクリックしたら , Presenta わない理由はふたつあります。 持ち込み , それをプラウザにロードして , ①彼らのコーディングスタイルがプラウザ tionManager ふうの画面になる , といった ことが可能て、す。 NeuronData 社の説明て、 makefile を生成するだけて、す。ビットマッ の要求するものと違う は , ネイテイプのウインドウマネジャのス ②プラウザのエデイタが emacs ふうのコマン プの変換も必要てすが , データベースのフ ォーマットは完全にポータブルて、す。 タイルにとらわれたくないという顧客がか ドを受け付けてくれない Creamer は , このライプラリの編成を気 なりいるのだそうて、す。つまり , マシンが 変わると GUI のルック & フィールも変わると に入っています。そして , Smalltalk ふうの いうのは嫌だ , 全機的に統一したい ーとが , 良い判断だっ クラス設計に従った , たと評価しています。ライプラリが必要な うのて、す。そうて、すねー , ばくも , いまの Windows-$7, 000 , OS / 2 ー $ 9 , 000 , VGA システムが , ワークステーションと同 機能の 90 % はそなえていますから , 残る 10 Macintosh—$7, 000 , Motif—$15, 000 , じように , Presentation Manager を表示て、 % の機能に関しては , ときどき SDK を覗く OpenLook-$15 , 000 必要があります。たとえば , 子プロセスの きたらいいなと思いますね。 Open lnterface が高価な理山は , 生成や , システムのデフォルトの設定のた Open lnterface Editor のデモを見た人は , うウイジェットのポータビリテイだけて、は めのファイル読み出しなどて、す。 みんな感心します。そして価格を聞くと , ありません。 NeuronData は , 非常に豊富 このほかの欠点として , ヘルプ機能が貧 みんなショックを受けます。 PC 用のクラス なウィジェット集を提供しており , またプ ライプラリといえば , $ 400 から $ 600 がふつ 弱て、あること , マニュアルのラスター操作 ログラマが独自のウィジェットを作ること の説明が分かりにくくて誤植があること , うてすが , これはなんと $ 7 , 000 に加えてラ もて、きます。本稿の評価用アプリケーショ そしてリファレンスマニュアルの項目の並 ンタイムロイヤリテイも請求されます。よ ほど , 独特な製品なんて、しよう。 び順が異様なことて、す。 Creamer の会社て、 ンを作るために この製品の現在のバーシ この製品が , 他の競合製品とまず違って ョン ( ' 92 年 11 月現在 ) に欠けていた唯一のウ は , コードの移植性に関する間題点はライ いる点は , さまざまな GUI の共通部分だけの イジェットは , グラフてした。次のリリー プラリにて、はなくて , 自分たちが書いたコ ポータビリティを実現する , 最大公約数主 スて、は , グラフのウィジェットも含まれる ードのほうにある , という経験をしました。 そうて、す。というわけて、 , Open lnterface 義と訣別していることて、す。 NeuronData また同社のデベロッパたちは , 各ルーチン のドキュメンテーション〔コメントなど〕 には , プラウザ用 , テープル用 , ボタン用 , は , 非常に低レベルの細かい作業を積み重 が充実していることと , リソースファイル ねることにより , このライプラリ製品のど そして各種のエディットコントロール用ウ をクラスの定義に移せることを , 気に入っ のプロシジャも関数も , すべてのプラット ィジェットと , 贅沢に盛り沢山にそなわっ ています。 ホームの上て、使える , という状態を実現し ているのてす。それに Open lnterface には , ネイテイプのプリント系用と PostScript 用両 DavidCreamer は , リソースをクラスへ ています。て、すから Open lnterface のコー 移せる機能はきわめて便利だが , Borland の 方の印刷インタフェイスが含まれています。 ドを見ると , プラットホームの違いに応じ て、すから , 画面に現れるものを作ったり操 Resource WorkshopC' ダイアログをデザイ て仕分けをする # ifdef 文が , ぜんぜん見当た ンして , それをポータブルなコードに変え 作するために , プログラマが新たにプログ りません。プラットホームに応じて変えな ラミングしなければならないことは , ほと られるのだから , 使い道は限られている , ければならないのは , makefile だけて、す。 Open lnterface Editor Neuron Data 社ー 24 C MAGAZINE 1993 7

2. 月刊 C MAGAZINE 1993年7月号

ことから起きるということを学んだのて、し になったと言っていました。 って変化します。 Liant の C 十十 /Views は CommonView に Zinc のコードは , すべてのプラットホー もう一人 , lomega 社の Greg Kock にも話 ムにわたって同一て、す。ただし , コンパイ 似ていますが , ツールバーが加わり , MDI を聞いてみました olomega が Zinc を選んだ ルされるスタートアップルーチンを仕分け は完全無視 , そしてチャートのビューはテ のは , 最初から C 十十向けに作られているた するために , #ifdef 文は多用しています。む ープルのビューと連動しません。 め , ソースコードが付いているため , そし しろ , すべてのアプリケーションのべース Neuron Data の Open lnterface Editor に て , ライプラリの設計が同社の将来方向と クラスとなる application クラスといったも は , 印刷機能 , 機能完備のスプレッドシー 合っていたためて、す。 のに , プラットホームごとの初期化のやり ト , 5 種類のグラフ , そしてデータベースの GUI の経験のない 5 名のプログラマが , Z 方の違いを知識として持たせたほうが , よ 探索がて、きるプラウザがあります。 inc を使うことになりました。そしてその後 りスッキリした仕上がりになったことて、し StarDivision の StarView も , 機能豊富て、 の 9 か月間て、 , 彼らは新たなインストールプ す。 OLE, DDE, クリップボ、一ドのカット & よう。ただし , スタートアップコードの部 ログラムとユーティリテイプログラムを , 分以外て、は , Zinc のライプラリは基本的に ペースト , 印刷 , そして完璧なヘルプシス すべてマルチプラットホーム向けに完成さ #ifdef と無縁て、す。 Zinc は , とくにデザイナ テム。スプレッドシートも , 完全なものが せることがて、きました。新たに必要とする ーの部分が , プログラマに大きな柔軟性を 付いていて , 行の指定とカラムの指定の両 機能性をプログラムに加えるにあたって , 提供すると自負しています。 方がて、き , 表中にデータを入力していくこ ライプラリのソースコードが手元にあるこ ともて、きます。合計計算も , やってくれま サンフルアプリケーションの とが大いに助かった , と彼らは言っていま すよ。ポータブルて、ない唯一の機能は OLE コードを見てみる す。そのひとつの例が , 温度計の形をした て、す。 コントロールて、した 各ライプラリ製品て、作ったサンプルアプ StarView は , Windows の共通ダイアログ そういう新しいコントロールを作るため リケーションを評価するために , C-DOC の をうまく利用して , 5 種類のチャートと , そ には , ただ派生クラスを作って , 必要とす C-METRIC という機能を使ってみました。 れらの色や項目テキストを変える機能を提 る機能性を加えるだけて、済みます。その新 この評価ツールを使って , コンパイラのパ 供しています。 StarView て、は , ステータス たなコントロールは , Zinc のライプラリを スの複雑度 , 関数のサイズ , 行数などを計 行とかツールバーなど〔の GUI 部品—GUI 表 現物〕も使えます。 べースクラスとしているために , 書き上が 測しました。この小さなサンプルアプリケ った時点て、すて、にポータブルて、す。 ーションに対する , これらの数値を , Wind WNDXMotif にも , 実用性のあるスプレ ows 用の実行ファイルのサイズと共に , Ta Zinc は , カスタマサポートがたいへん良 ッドシートが付いていますが , 行やカラム いようて、す。ただし , 新バージョンの発売 ble 1 に示します。もちろん , いちばん重要 の指定はて、きません。新たな行を加えるこ 間もなくは , かなり混雑していたようて、し なのは , 一定の機能性を達成するために要 とはて、き , そうすると自動的に合計計算を したコード量と , 複雑さの度合いて、す。 やり直します。この製品は完全に MDI 準拠 た。 lomega のプログラマたちは , Zinc が小 さな企業て、あること , 社長本人が気軽に電 CommonView のプログラムは , 本物の M て、 , 6 種類のグラフをサポートし , またバブ 舌をくれて , 技術的に的確な話をしてくれ DI ふうに動作しますから , 同時に複数のレ ルヘルプ〔吹き出し型ヘルプ〕も使えます。 コードを画面上て、見ることがて、きます。た ることを喜んて、いました。 Zinc て、作ったサンプルアプリケーション だし表に対して指定て、きるのは行だけて、 , Zinc のカスタマサポートは , 修理とか質 は複数国籍の言語をサポートしており , ッ カラムの指定はて、きませんし , データの編 間に関して良質なだけて、はなく , ールバーも使い , そして電話番号を入力す いろいろ 集もて、きません。グラフは 3 種類をサポート なプログラムの実装の仕方まて、相談に乗っ るためのピクチャーフィールドがあります。 していますが , その中の項目のソートはて、 てくれるのて、す。 グラフは 5 種類 , 行とカラムの両方の指定が Kock は ,Zinc のライプラリの設計は良質 て、きます。 WNDX や StarDivision の製品と きません。 て、あり , 自分たちの製品が成功するための Guild には完全なヘルプシステムがありま 同じく , Zinc て、も , デスクトップ上て、のタ 中心的な要素だった , と感じています。彼 すが , MDIA うて、はないのて、 , 一度にたっ イリング , カスケーディング , アイコンの がロにした唯一の不平は , Ver. 2 と Ver. 3 たひとつのレコードを , いろいろなビュー 並べ変えなどがて、きます。 とのライプラリの違いて、す。しかしその違 〔見方・視点〕て、見られるだけて、す。 GuiId 以上の話が具体的に分かるためには , サ いは , ポータビリティを増すための措置だ ンプルプログラムとそのソースコードをぜ、 は 5 種類のグラフをサポートしており , 色 , ったことを彼も理解しています。また彼は , 線 , マーカー , 塗りつぶしパターンなどを ひ見てみる必要があります。どのべンダも , 〔クラスの階層構造の〕抽象化がより強力 指定て、きます。チャートは , 選んだ行に従 自分たちの見解と , アプリケーションやそ 二二ロ マルチプラットホーム G 団ライプラリの動向 31

3. 月刊 C MAGAZINE 1993年7月号

the world through 曲 e 叩 sunglasses 00king a って , 複数プラットホーム向けの市販のユ ーティリティ類を作っています。 Eigen が G uild を選んだのは , そのマルチプラットホー ム対応機能と , ( オプションて、提供される ) モデリングプログラムのためて、す。彼の感 想て、は , Guild のいちばん良い点は , SDK と のインタフェイスが楽だ , という点。これ は , その他のツールがさばっている点だそ うて、す。また , GuiId はカスタマサポートが 立派て、 , 〔出来上がったアプリケーションの〕 実行性能も一般的に良好ということて、す。 欠点は , 学習曲線が高い〔習得が難しい〕 ことて、す。彼の感想て、は , GuiId は非常に取 つつきやすいけれども , プロジェクトの重 要部分を手がけるころになると , 急に難し くなるそうて、す。その他の欠点は , マニュ アルの出来ばえ , 新バージョンが開発中て、 あること , そしてマルチプラットホム向 けの共通機能がやや貧しいことて、す。複数 のネイテイプの GUI に対するカバー範囲を , Guild はもっと広げる必要があります。 ばくが話を聞いた二人目は , TASC 社の N ancy Streifel て、す。彼女は , Guild のカスタ マサポートに満足しており , 覗き ( snooper ) 機能がお気に入りて、 , またイベントループ の各種機能が強力だと言っています。その イベントループの中て、は , 基本的に どの イベントに何を結び付けてもよいのて、す。 StreifeI は , ライプラリのカバー範囲につい ても満足していました。低レベルの , 個々 のプラットホーム独自のスタイルを目指さ ごく使いやすいということて、 ないかぎり , す。彼女の見解て、は , 唯一の深刻な弱点が 例外処理て、す。 GuiId は , 例外が起きると報 lnmark DeveIopment 社 zApp 告も何もしないのて、す。 22 C MAGAZINE 1993 7 ( 価格などはメーカーに直接問い合わせのこ トウェアの一種て、す。恰好いい設計環境や かすんなり定住してしまう , そういうソフ zApp は , ばくのマシンの上にいつの間に クラスプラウザはありませんけど , とにか く良質なコードを提供しているのて、す。 zA pp は元々は lnmark 社が , 同社の経理財務分 野向けのソフトウェア製品の移植作業を楽 にするために内製したものて、す。本稿て、取 り上げた製品の中て、は珍しく , クラスライ プラリて、あるとともにアプリケーションフ レームワーク方式て、もあるという製品て、す。 lnmark 社は , 新バージョンの開発て、忙しか ったため , ばくが指定したサンプルアプリ ケーションを作ってはくれませんて、した。 そこて、 , zApp のサンプルプログラムは , ス ヒ。ードの比較のためにばくが作った二つだ けて、す。 lnmark 社の強みは , コードの質て、す。ソ ースコードも , 説明やコメントがしつかり 書かれています。ソースコードをパーサて、 フィルタしてプリンタにかければ , 完全な リファレンスマニュアルがて、きてしまいま す。ライプラリもきわめて充実していて , メモリ管理や , グラフィカルオプジェクト を操作するための強力な機能も含まれてい ます。ューザ入力の確認チェックという部 分て、は Zinc に劣りますが , この方面も次の バージョンて、は強化されるて、しよう。 zApp は現在 , Windows 3.1 と NT をサポ ートしています。 OS/2 と Motif 向けも , や がて発売されます。また , MEWL 〔 DOS 向 けのマルチウインドウシステム開発用ライ プラリ製品〕を使って DOS もサポートして います。マニュアルは分かりやすいのて、す が , 実習書という点て、はやや不満て、す。た だし , ソースコードて、提供しているサンプ ルプログラムは豊富て、す。その中には , Ch arles Petzold の Programming Windows (Microsoft Press, 1993 ) [ 1 ] の中のサンプル プログラムがすべて含まれています。 zApp には , プログラム作りを支援するツ ール類はとくに含まれていません。しかし リソースファイルをサポートしていますか ら , 別途お気に入りの画面設計ツール〔リ ソースエデイタなど〕を使ってダイアログ などを作り , それを操作するコードを zApp を使って作るというやり方がて、きます。 lnm ark 社自身が , デザイナー〔リソースエディ タなどの設計ツール〕を将来提供すること もありえますが , 今現在 , 各 GUI のネイティ プのインタフェイスデザイナーを使えます し , その場合のコード量も比較的少ないて、 すから , 自社製品として作ることはずっと 後回しになるて、しよう。 Windows-$495, OS / 2 ー $ 995 , UNIX Motif—$1, 495 Liant の C 十十 /Views は , ばくの本の中て、 は , マニュアルやコード中のコメント類が 充実しているという点て、 , 高い評価をケえ ています。、、 HeIIo world 〃プログラムを作っ てから , それにメニューやダイアログなど を加えていくという教え方をしているライ プラリ製品が多い中て、 , Liant は , クラスの 作り方 , 派生クラスの作り方 , クラスのイ ンスタンスの作り方 , そしてアプリケーシ ョンの作り方まて、 , みっちりと教えてくれ ます。これだけ教え方が詳しいのは , たぶ ん製品中に GUI の構築ツールが含まれていな いからて、しよう。 Liant は現在 , Digitalk の SmalltaIk/V のプラウザに似たクラスプラウ ザを用いていますが , 構築ツールを提供す る計画はもっています。その結果 , あの詳 しいマニュアルを , 全面的に変えることは しないて、ほしいて、すね。 Liant のプラウザの良い点は , その内蔵パ ーサて、す。コンパイルしていない , あるい はコンパイルて、きないファイルて、もプラウ ズて、きます。またこのプラウザは , あなた が作るプログラムのための makefile も , 自 動的に作ってくれます。 このプラウザのほかにも C 十十 /Views は , いかにもプロ向け製品という感じのツ ールを , 幾つか含めています。まず , ソー スファイルとヘッダファイルの圧縮解凍 , ソースとヘッダからのドキュメンテーショ ンファイルの作成 , そしてアプリケーショ ンの環境ファイルのアップデートをやって C 十十 /Views Liant 社

4. 月刊 C MAGAZINE 1993年7月号

0 ′ 0 ′ rn iO System Co ′′ . プロフェッショナルのための 32bit C/C 十十 グローノレ・オプチマイジング・コンヾイラ HIGH c/c 十十は、 32 ビット開発システムとしての機能強化をするために ANSI c 規格に加え、 AT & T 社 C 十十をサポートしました。 さらに開発者のニーズをフルに取り入れ、 9 レベルにも及ぶ強力な最適化機能や c から c 十十へと 3 段階のコンパイルが可能なインクリメンタル・ストレングス機能″など、 開発環境をより強力にパワーアップしました。 新発売 翫引 32bit High Performance C/C 十十 compiler fO 「 DOS-Extender & Windows IHigh Performance C / C 十十コンパイラ く 16 ビット DLL のサポート〉 16 ビット D 乢の呼び出しが可能 ドキュメント無 ) ですので、既存の 16 ビット DLL を 32 ビットアプリケーション く C 十十サポート〉 ー 38 田 DOS-Extender 対応 ・ HIGH C/C 十十は、 AT&T 社 C 十十、 ANSI C(X3J11) へ利用できます。 構築された 32 ビット DOS アプリケーションは、拡張メモ をサポートしています。 く Microsoft Windows SDK 〉 W ⅲ dows アプリケーション リが全て利用できる他、 ne ポイで 4G バイトものアドレ ・インクリメンタル・ストレングス機能は、 C から C 十十へ段階 の開発に必要なリソースコンパイラ等は、米国 Microso れ ッシングができ、 DPMI 0.9 & 1.0 規格への対応により 的な移植を可能にし、 C プログラムの移植を簡単にしま 社よりライセンス提供されているため、 Micr 硫 W ⅲ dows Windows 3. x の DOS 互換 BOX での実行も可能。 ■数値演算コプロセッサ SDK の別途購入は必要ありません。 す。 HIGH C / C 十十インクリメンタルストレングス機能 ・開発 & テパッグ環境 80287 、 387 、 80486 内蔵 FPU を始め Weitek3167 / 4167 のサポートにより、高速な浮動小数点演算処理を実現。 く 32 ビットソースレベルラヾッガ〉複数ソースや混合言語で C 十十のフルサポート 全ての C 十十機能利用可全ての機能と規約 ※コプロセッササポートは機種に依存します。 開発されたプログラムのソースレベルラヾッグ機能や変数 C 十十の禁止規約は、が使用される ハードウェア 80386 、 SX / 80486 、 SX / Pentium CPIJ* 載機 NEC PC -9801 、 H -98 、 EPSON PC386 シリーズ 旧 M PC / AT 互換機及び DOS / V 対応機 15MB のハードディスクスペース 2MB 以上のプロテクトモードメモリ 最強のデバッグ環境を く 80486 の最適化コード〉 HIGH C Ver. 1.7 からの 486 対 ソフトウェア MS-DOS Ve 「 .3.1 以上または相当品 0 「 DOS/V 32 ビット C / C 十十プログラムに提供。 応の最適化コード生成機能に加え、 Pen ⅱⅢれ専用の最適 く 32 ヒ。ットメイクユーティリティー〉巨大アプリケーションの開発 化機能を実現し、各 CPU のパフォーマンスを最大限に生か 効率を最大限アップさせるために、ソース & オプジェクトコ すコードの生成ができます。 ードを管理するメイクューティリティーを装備。 くハイパフォーマンス〉Ⅲ GH C / C 十十のグローバルオプチ マイゼーション機能は、プロフェッショナルユースを 1 開 % 満 ■ 32 ビット拡張ライプラリ たす 9 段階の最適化レベルにより、飛躍的なプログラムの く拡張グラフィックライプラリ〉 32 ビットグラフィックライプラリ 高速化やコードの縮小化が可能です。 を標準装備しており、出 M 版での VGA 対応、 NEC 版での ■ Windows3.0 / 3.1 対応 32 ビット ADK (AppIication DeveIopment Kit) ハイレゾ対応により高機能なグラフィック環境の提供。 く 32 ビット W ⅲ dows アプリケーション〉Ⅲ GH C / C 十十は、 32 く漢字ライプリ〉 2 バイト系文字列操作関数により、アプリケ ヒトの Windows アプリケーションとタイナミックリンクライプ ーションの日本語環境をより強化。 ラリ ( DLL ) を生成できるので、よりパワフルな Windows ア く標準クラスライプラリ〉 プリケーションが開発できます。 ・ AT&T 社 C 十十 Ver. 2.1 に完全対応した C 十十 I/O く Windows API サポート〉豊富な W ⅲ dows API をフルサ Stream クラスライプラリを標準装備。 ポートしているので、 32 ヒ。ット Windows アプリケーションから ・ C 十十プログラミングのサンカレとして Rouge Wave 簡単に利用できます。 TooIs. h 十十クラスライプラリを装備。 ( ms. h 十十は、 ※既存の印 GH c ユーサーの方にはバージョンアップサービスを実施します。 3861D()S-Extender ver. 5 ( 英語版 ) 発売中 Y128 , 000 全ての C 十十機能利用可 ANSI き 0 工 0- ュ一 0 工 C ・ 0 ′後一第にれ創 0 定価 \ 198 , 000 (NEC 版、旧 M 版 ) ( 消費税は含まれません。 ) 〒 263 千葉県千葉市稲毛区天台 6 ー 5 ー 3 製品についてのお問い合わせ C D C C ビル 1 F 043-284-4822 TEL : 043 ー 284 ー 4822 FAX : 043 ー 284 ー 5270 テック情報システム株式会社 アプリケーション技術部ソフトプロダクトセンター * MS-DOS 、 MS-Wlndows は Mcrosoft Co 「 p. の商標です。 * HIGH C/C 十十は米 c. の商標です。 * その他プログラム名、コプロセッサ名、 cpu 名は、一般に各メーカーの登録商標です。 く資料請求番号 008 〉

5. 月刊 C MAGAZINE 1993年7月号

AIIWays テキストウインドウライプラリは、マルチベンタに対応 した C 言語スクリーン・ファンクション・ライプラリです。実行する に応じた高速・高なスクリーンを提供します。特にい N 対応アプリケーションの場合マルチベンダ文は非常に重要カつ困 難な問題です。 AIIWays を使用して作成したアプリケーションなら、 1 つの実行ファイルだけで多くに文できます。ーの実行 ファイルを用意する必要はありません。 ー依存部分を分離 AIIWays は、スクリーンやキーポードなどの機種依存部分をランタイ これらのモジュールは作 ム・エクステンションとして分難しました。 成した実行ファイルにリンクされるのてはなく、実行 1 にイ十ミッ クにロードされます。どの機種Ⅲのモジュールをロードするかは一竟 変数によって定しますから、作成した実行ファイルには機種依存部 分を含む必要はないのてす。 ・高速でコンパクトなランタイム・エクステンション 機秤依存部分をまとめたランタイム・エクステンションは、 l'C98()(), FMR 、 PS/.T) 、 J-3Ⅱ用、 AX.IX)S/V など、 i:. 要な国産バーソ十ルコ 、ンヒ。ューダⅢのものが殆ど提供されます。しかも、各機種の性能を最 大に活Ⅲてきるように高速・コンバクトに設制・されています。 ・多彩な入力処理を提供 人力フィールドのデータダイプ畆各種人力属性定、文字色、 カーソル表 4 リ鰍自利魃け出しこ F 樹制などがてきます、、ま た距形人力フィールドもサポートしています。フィールド内てのスク ロールもサポートしていますのて、実際の示フィールドより人きな データの人力・編集も可能 ( す。 ・ウインドウを提供 最人 64 個のオーヴァラップ・ウインドウが利Ⅲてきます。ウインドウ のポップアップ、移動、サイズ / カラー / タイトルの変史などが容易 てす。ウインドウ内てのスクロールも可能てす。 を用メニューの ポップアップ・メニュー、プルグウン・メニュー、メニュー・バー 階層メニューを容易に実現する関数を提供しています。階崩メニュー ては、特に表′置を定しなくてもサプメニューの適切位置表示が 自利的に行われます。 ・ランタイム・ライセンス・フリー 作成したアプリケーションは、機種依存部分のランタイム・エクステ ンションと共に 自山に配市・版売することがてきます。 〈価格》¥ 68.000 ※ソースコード付きヴァージョンもⅢ意されています ( 価格 : Y ー聞 . ( )) NPPC ライプラリ (Netwo 「 k Program-to-Program Communications) NPPC (Network Program-to-Program Communications) ライ プラリは、ネットワーク・アプリケーション開発をナる強力なサプ ルーチン・パッケージです ・旧 X と Net 0 方に N 円℃ライプラリには 2 つのヴァージョンがあります。 1 つは N ( Ⅳ e 社の IPX トランスポート・プロトコルに対応したヴァージョン ( 、もう 1 つは Net OS ヴァージョンてす。どちらのヴァージョンも同じ A 円 ( アプリケーション・プログラム・インタフェース ) を持っていますか ら、作成するアプリケーションはソース・レベル ( ん全なな換性があり ます。運川する、勲霓に応じた N 円℃ライプラリをリンクするだけてす。 ■言語インタフェース供 N 円℃ライプラリては、 C 言語およびアセンプリ語のインタフェー スが標 4 材是供されます。 IPX や NetBI()S のプログラミングについて 新たに・ 7 物する必要はありません。メッセージのキューイング、転送、 受取り、エラー時の再送、Ⅳ X や NetBI( ) ) 初期化および終「処理な どはすべて N 円℃によってコントロールされます .. メッセージは 日 FO モードあるいはイ定した優ん類にアプリケーションに渡すこと が可能 ( す。 ・アオ ) ケーション・モデル N 円℃ライプラリを使川して作成されたアプリケーションては、どの ステーションもクライアント、サーバあるいはその両方の機能を利川 てきます。非い JJY レい JJY レッセージ転送が、クライアント / サーパ・ モデルおよびヒ。ア・トウ・ピア・モデルてサポートされます。 ・フル・アセンプラ N 円℃ライプラリはⅡ灯 % アセンプラ ( 心されており、オフション てソースコードも提供しています .. なお、 N 円℃ライプラリを組み込 んだアプリケーションは約 KB のメモリを余分に必要とします ,. ・ランタイム・ライセンス・フリー N 円℃ライプラリを組み込んだアプリケーションは、追加費川を支払 うことなく、自山に販売・配布することがて・きます .. 〈価格〉 NPPC forlPX ¥ 6 圧 000 NPPC fo 「旧 X / ソースコード付き¥ 120.000 NPPC fo 「 NetBlOS ¥ 68.000 NPPC fO 「 Net 日旧 S / ソースコード付き¥ 120.000 ※田 M - P ( 数と NEC ー℃ 980 ( はそれそ・れ別嬲てす。いずれも MS-D()S v3.1 以 l•. が必要てす。 ※田 M P ( は OS レベルて田 M ヨ℃とな換性のあるマシンて・あ れば使川可能 ( す。 ! 均な機種についてはお間い合わせください ・お間い合わせは ージーテック List 4 ) いいにリ ( 」に ( にい ~ にに。ににいリー 58 : 59 : 朝 60 : 63 : 64 : 第 65 : 66 : 68 : 70 : 72 : 74 : 76 : 77 : 78 : 80 : 82 : 83 : 85 : 86 : 87 : 88 : 89 : 90 : 92 : 93 : 94 : 95 : 96 : } 第 98 : #pragma argsused int nShov) 99 : int PASCAL WinMain(HANDLE hlnst, HANDLE hPrev, LPSTR IPCmd, 100 : { static char szAppName[] 101 : つ 102 : HWND hwnd; 103 : MSG msg, 104 : WNDCLASS vndclass; 105 : if (!hPrev) { 106 . wndclass. style : CS-HREDRAW ー CS-VREDRAW; 107 : WndProc; 108 : wndcIass.IpfnWndProc vndclass. cbClsExtra ニ 0 : 109 : vndclass. cbWndExtra ・ニ 0 : vndclass. hlnstance = hlnst; vndclass. hlcon ニ LoadIcon(NULL, IDI-APPLICATION) : vndclass. hCursor = LoadCursor(NUL し IDC-ARROW) : vndclass. hbrBackground : GetStock0bject(WHlTE-BRUSH) : ニ NULL; wndclass.lpszMenuName szAppName; 1 16 : vndcIass.lpszClassName RegisterClass(&vndcIass) : 1 18 : い 1 19 : 120 : 121 : 122 : 1 2 4 : 125 : 126 : 128 : 129 : 第 130 : 131 : 132 : } static char し uf [ 80 ] : PAINTSTRUCT ps; RECT rect; sv•itch (msg) { case WM_CREATE: / * テキスト画面の内容を設定し、 V i d eo I n i t を呼び出す * / SetupScreen() : vsprintf(buf, ” Press left button t0 svitch DOS screen(result ニ %d)" V i de n i t ( ) ) : return 0 : case WM_PAINT: / * メッセージを表示 * / BeginPaint(hwnd, &ps) : GetClientRect(hwnd, &rect); DravText(ps. hdc, buf, ー 1 , &rect, DT-SINGLELINEIDT_CENTERIDT_VCENTER) ; EndPaint(hvnd, &ps) : return 0 : case WM_LBUTTONDOWN : / * 左ボタンが押されたらテキスト画面に移行 * / VideoDebuggerScreen(); SetCapture(hwnd) ; return 0 ; case WM_LBUTTONUP: / * 左ボタンが離されたら Windovs の画面に復帰 * / VideoWindowsScreen() : ReIeaseCapture() ; return 0 : case WM_DESTROY: / * VideoDone の呼び出し * / VideoDone(); PostQuitMessage(0) ; return 0 : return DefWindowProc(hwnd, msg, wParam, IParam) : ” VideoSwitch ” hwnd ” The Video Swi tch Program CreateWindov(szAppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NUL し NULL, hlnst, N 乢い ; Sh0 石 ndo れ h Ⅶ山 nShov) : UpdateWindow(hvnd) : vhile (GetMessage(&msg, NUL し 0 , TransIateMessage(&msg) : DispatchMessage(&msg) : return msg. vParam; く資料請求番号 139 > PC 98 田 #}TDVIDEO の作り方 139

6. 月刊 C MAGAZINE 1993年7月号

TDVIDEO ℃ LiSt 力の方々にご協力をいただき , こて、解説 する内容をもとに作成した最新のビデオポ ードに対応する DLL を添付しました。 また , 今後新たにビデオボ、一ドが発売さ れた場合て、も , この解説を元に DLL を作成 すれば TDW が利用て、きるようになります。 各種のビデオポード上て、そのままデバッガ が使えるとなれば , 開発も容易になること て、しよう。 【注意】 Borland C 十十 2.0 や Turbo PascaI for Windows に付属している TDW 2.5 に こうした機能はありません。また , DO は , S / V 版の TDW て、は後述の理由により , この 方法は使えません。 * TDVIDEO. C - - ノーマルモード用 TDVIDEO. DLL 4 : #include くⅵ ndo . h 〉 6 : #pragma argsused 7 : int FAR PASCAL LibMain(HANDLE hlnst, WORD wDSeg, WORD wHeapSize, LPSTR lpcmd) if (wHeapSize ! ニ 0 ) 9 : UnIockData( の : return 1 : 14 : #pragma argsused 15 : int FAR PASCAL WEP(int status) 20 : / * * VideoDone 22 : 24 : int FAR PASCAL VideoDone(void) 28 : 30 : * V i deol n i t 5 32 : 。 33 : int FAR PASCAL VideoInit(void) 35 : return 0 : 36 : 、 39 : * VideoDebuggerScreen ー Turbo Debugger の画面に切り換える 40 : 41 : void FAR PASCAL VideoDebuggerScreen(void) 44 : 第 48 : 49 : 53 : / * 54 : * VideoWindowsScreen - W i ndows の画面に切り換える 56 : void FAR PASCAL VideoWindowsScreen(void) asm { / * テキスト画面の表示停止 * / 59 : mov ah, ODH i n t 18H / * グラフィックス画面の表示 * / 62 : 63 : mov ah, 40H 64 : int 18H return 1 : ー Turbo Debugger の終了時に呼び出される関数 戻り値 : 0 ( 成功 ) 、 1 ( 失敗 ) ノマルモー・用 T VIDEO 98 用の TDVIDEO は , Table 1 に示す工ク スポート関数をサポートしなければなりま せん。逆にいえば , これらの関数をサポー トするだけて、 TDVIDEO はて、きあがります。 List 1 , 2 にノーマルモードのための TDV IDEO のソースコードを示します。ノーマル モードは TDW 自身がサポートしています が , このソースコードをもとにすれば DLL が開発しやすいて、しよう。プログラムにつ いて簡単に説明します。 まず , LibMain と WEP はそれぞれ DLL の こて、は特別な作 ために必要な関数て、す。 業を必要としていないのて、 , もっとも簡単 な内容になっています。 VideoInit と Video Done は無条件て、成功を返します。 VideoIn it は TDW が起動した時点て、一度だけ呼び出 される関数て、 , ビデオポードの検出や必要 なデータの設定 , メモリの確保などをしま す。期待するビデオボ、一ドが検出て、きなけ れば , 1 ( 失敗 ) を返すようにします。 Video Done は TDW が終了するときに呼び出され る関数て、 , 確保したメモリの解放などを行 います。 VideoDebuggerScreen と VideoWindow sScreen は , それぞれ BIOS を使ってグラフ return 0 : いに - ににリリー - Turbo Debugger の起動時に呼び出される関数 戻り値 : 0 ( 成功 ) 、 1 ( 失敗 ) asm { / * グラフィックス画面の表示停止 * / mov ah, 41H int 18H / * テキスト画面の表示 * / mov ah, OCH int 18H 136 C MAGAZINE 1993 7

7. 月刊 C MAGAZINE 1993年7月号

X 68 k 活用講座 この原稿を執筆している時点て、は , 68020 今月号から , XC Ver. 1 , XC Ver. 2 , X68030 対応について コードをアセンプルてきるアセンプラが PE X680X0 libc と 3 バージョンのライプラリに 適応するようにソースが書き換えてありま KIN ネットて、限定公開されている fas. x しか 最新版の XGCC て、は 68020 ( 68030 ) および す。先の節て、説明した game. h をよく見て , ありませんが , 参考まて、に GCCX68030 対応 68881 / 68882 対応コードを生成て、きるように 版と fas. x を用いて作成された game030. x を 自分の環境に合わせてコンパイルしてくだ なっています。生成コード上て、の 68000 に対 付録ディスクに収録したのて、 , X68030 を使 さい する 68020 ( 68030 ) コードのアドバンテーシ っている方は動かしてみてください。当然 map. c は巨大な配列を初期化しているため は , スケール値を持ったアドレッシングモ て、すが , X68000 上て、は実行て、きないのて、注 に , コンパイルの際にメモリを大量に消費 ードとビットフィールド命令 , 乗法除法の 意してください します。メモリが 2M バイトのマシンて、はコ List 4 は , 今回説明を行った map. c の関 直接実行 , 68881 / 68882 を使った実数計算と ンパイルて、きないかもしれません。 数 , 、、背景移動処理〃の GCC X68030 対応版て、 いったところて、す。 の出力コードて、す。見慣れない divsl. 1 命令と 実際の話 , 68881 / 68882 を直接使うコード 以外は , 劇的に実行速度が速くなるわけて、 か lea (a2, d3.1 * 4 ) , a0 といったアドレッシン グモードが使われています。皆さんの手元 はありません。 10 倍以上のパフォーマンス の XGCC が出力するコードと比較してみてく を期待するのは最初から無理な相談なのて、 す。それて、も , やはり 68030 25MHz の威力 ださい は魅力て、 , 連載のゲームプログラムのコン コンノヾイルについて パイル時間は , 「たばこを 1 本吸えない時間」 て、終了します。 背景移動処理関数の GCC X68030 対応版の出力コード . gl 。 bl 背景移動処理 背景移動処理 : movem. 1 d3/d4, -(sp) tst. 1 一面初期化 bne ? 30 addq. 1 # 1 , —?cont_3 moye. 1 —?cont_3, dO btst # 0 , d0 beq ? 31 tst. 1 一面クリア bne ? 31 asr. 1 # 3 , d0 moveq. 1 # 5 , d4 divsl. 1 d4,d1:d0 moveq. 1 # 64 , d3 add. 1 dl, d3 bsr _write_one block lea _scrol 1 data + 2, a0 su . 響 # 1 , (a の subq. 響 # 1 , ( 4 , a の subq. 響 # 1 , ( 8 , a の su . 響 # 1 , ( 12 , a の clr. 1 dl lea —g—palet, a2 lea —c—palet, al lea (a2, d3. 1 * 4 ) , a0 move. 1 ( a の + , dO move. 響 d0, (al) addq. 1 # 1 , d3 moveq. 1 # 69 , d4 cmp. 1 d3, d4 bge ? 34 lea 256 ( a2 ) , a0 次回は ゲームもかなり形をなしてきました。次 回はスコアの表示や溜め撃ちのゲージ表示 などをバックグランド画面を使って行って みる予定て、す。 List 4 List 4 List moveq. 1 # 64 , d3 addq. 響 # 2 , al addq. 1 # 1 , dl moveq. 1 # 4 , d4 cmp. 1 dl, d4 bge ? 36 tst. 1 _now_counter bge ? 29 moveq. 1 # 1 , d4 move. 1 d4, 面クリア bra ? 29 moveq. 1 # 1 , d4 cmp. 1 面初期化 , d4 bne ? 38 moveq. 1 # 2 , d4 move. 1 d4, 面初期化 clr. 1 d3 clr. 1 -(sp) move. 1 d3, -(sp) Jsr —iocs—gpalet addq. w # 8 , sp addq. 1 # 1 , d3 cmp. 1 # 255 , d3 ble ? 42 clr. 1 d3 bsr write_one _block addq. 1 # 1 , d3 cmp. 1 # 271 , d3 ble ? 46 bra ? 29 ? 38 : ? 34 : move. 1 一面初期化 , d0 cmp. 1 # 65535 , dO bgt ? 48 add. 1 # 1024 , d0 move. 1 d0 , 一面初期化 clr. 1 d0 move. 1 面初期化 , dl move. 響 dl , d2 lea —palet—buf, al lea —g—palet, a0 cmp. 1 (a の , dl bcc ? 52 move. 響 d2, ()l ) bra ? 51 move. 響 ( 2 , a の , (al) addq. w # 2 , al addq. 響 # 4 , a0 addq. 1 # 1 , d0 cmp. 1 # 255 , d0 ble ? 54 moveq. 1 # 1 , d4 move. 1 d4, _palet_def bra ? 29 moveq. 1 # 1 , d4 move. 1 d4, ゲーム開始 clr. 1 面初期化 movem. 1 (sp) + , d3/d4 rtS ? 31 : ? 54 : ? 30 : ? 52 : ? 51 : ? 42 : ? 48 : ? 36 : ? 46 : ? 29 : 134 C MAGAZINE 1993 7

8. 月刊 C MAGAZINE 1993年7月号

ln 川 a ⅱ行匪 m m 川計 Ma れ門 マイクロソフト VisuaI C 十十 Ver. 1 .0 今回は , 先頃米国て発売が開始 度が劇的に速まります。 された Microsoft Visual C 十十 D Microsoft Foundation Class L ibrary Ver. 2.0 ( 以下 MFC 2.0 ) evelopment System for Window s Version 1 . 0 ( 以下 VC 十十 ) につ には , 各種のビューやツールノヾー いてご紹介します。 のような , よく使われるユーザイ VC 十十は , 再利用可能な既存プ ンタフェイス項目を迅速に作成て、 きる , 役に立っクラスが数多く収 ログラムコードの威力と , 開発工 程を短縮するための継ぎ目のない 録されています。 ビジュアル環境とを結合します。 VisualC 十十開発システムは St ューザは , 一連の緊密に統合され andard Edition と Professional E たツールを使用して , ユーザイン dition のふたつの形て、提供されま す。ューザの中には , まずオプジ タフェイスを設計し , プログラム グラミングの専門家の要求をも満 況に応じて内容を表示するように を製作し , デバッグしたりプラウ ェクト指向プログラミングの導入 たす強力なものにしなければなり なっています。それらの要因が相 ズしたりて、きます。 に成功を収めたいところもあれば , ません。手短にいうと , C + 十を誰 まって , ューザは開発工程をより また , 新しい機能、、 Wizards 〃が基 マイクロソフト社が提供する最適 にて、もアクセスしやすいものにし よく制御することがて、き , 日々の 本的なタスクを肩代りするのて、 , 化オプションをすべて実現したい なければなりません。 生産性を向上させることがてきま ューザの生産性が最大限に向上し ところもあるて、しよう OVC 十十は このニーズに対応するために す。 そのどちらのニーズをも満たしま ます。 ・エデイタがファイル中のシンタ VC 十十に Standard Edition と Pro す OVC 十十は Windows 用のプログ ックスを自動的に色分けしてく fessional Edition のふたつを設け ラムを C 十 + て、迅速に作成するため れるのて、 , プログラムコードが ることにしました。どちらの版も の強力な手段なのて、す。 MFC と以下に紹介する画期的な生 読みやすく保守しやすくなりま VC 十十は , Windows と完全に 注意 : VC 十十の Standard Editio 産性向上機能を備えています。そ す。 連携して稼働する , 極めて統合性 n て、生成て、きるアプリケーシ ・統合デバッガは開発環境内のプ れに加えて , Professional Editio の高い開発システムて、す。このシ レークポイントに素早く柔軟に n には MS-DOS オペレーティングシ ョンは Windows 用のものだ ステムは Table 1 に示すサプモジュ けて、す。 MS-DOS 用のアプ ステム用の高度な最適化 , コード アクセスする機能を備えていま ールから構成されています。 リケーションを生成するた 生成 , デバッグ , プログラミング す。また , ウインドウ指向のデ VC 十十は MS-C/C 十十 7.0 の などの機能が組み込まれています。 バッガて、ある CodeView Ver. めには , VC 十十の Professi 後を継ぐものて、す。 MS-C/C 十十 どちらの版も , 各種のアド onal Edition をご使用くだ 4.1 は拡張デバッギング機能を備 7.0 て、導入された , 小規模て、高速な オンユーティリティを利用するこ えています。どちらもハードウ ェアプレークポイントに対応し プログラムコードを実現するため とによって , その機能を拡充する 技術的な要点 の言語オプションと最適化オプシ ことがて、きます。 Visual Basic f ています。 ・ソースコードプラウザを利用す ョンは , すべて VC 十十に継承され or Windows て、よく使われている マイクロソフト社が提供してい ると , ユーザは C 十十クラスおよ ます。それに加えて , 開発環境が . VBX コントロールはそのようなユ ビジュアル化されるため , 従来よ び C コードをたどって , メンバ関 る C 言語関係のプログラミングシス ーティリティの一例て、す。 数 , 構造体 , 変数 , 型 , メンバ りもはるかに開発サイクルを進め テムには Microsoft QuickC for W 生産性 indows( 英語版のみ ) と MS-C/ の間の関連を洗い出して容易に やすくなります。アプリケーショ 追跡することがて、きます。 ンを本稼働に移行させることも , C 十十 7.0 のふたつがあります。 V ューザ固有のニーズにもっとも適 ・ AppStudio を利用すると , ユー C 十十開発システムをそれらのふた VC 十 + 開発ツールは継目なく統 合されています。それらのツール ザはビットマップ , カーソル , するように最適化を図ることも , つの好評なプログラミングシステ ダイアログボックス , アイコン , 極めて容易になります。 ムの後を継ぐものとするためには , は Windows のもとて、オンラインへ メニュー , 文字列を , その特性 Wizards がユーザに代わって低 C 十十の初心者にも学習しやすく , ルプと連携して機能します。それ を精密に制御しながら素早く編 水準のタスクを行うのて、 , 開発速 それて、いてオプジェクト指向プロ らのオンラインヘルプはすべて状 Table 1 VC 十十のサプモジュール モジュール VisuaI Workbench App Studio Wizards 機能 プログラムのコーティングを支援 リソースの編集を支援 繰り返し的なプログラミングタスクをユー サに代わって行う あらかじめ作成したプログラムコードを体 系的に編成し , 再利用に供するためのライ プラリ Microsoft Foundation Class Library Ver. 2.0 概要 C MAGAZINE 1993 7 150

9. 月刊 C MAGAZINE 1993年7月号

Windows, OS / 2 , SCO XENIX, UNIX Motif ( 価格はメーカーに直接問い合わせのこと ) Glockenspiel は , Computer Associates の ポートフォリオ〔買収した企業のリスト〕 にいちばん新たに加わった企業て、す。とい うわけて、 Computer Associates は , GIocke nspiel の優秀なマーケティング部門とテクニ カルサポート部門をそっくり手中に収めま した。また Glockenspiel は , 各プラットホー ム向けの C 十十コンパイラを前から提供して 師処理系との互換性という いますから に 1 ロロ 点て、 CommonView は有利て、す。言語処理系 の正式の製品名は , いまや , ComputerAs sociates Glockenspiel C 十十て、す。 CommonView には , GUI のクラスライフ ラリだけて、はなく , 一連のコンテナクラス が含まれています。その実装ぶりは , Lian t の製品ほど充実してはいませんが , 一応 S malltalk ふうのクラス階層を実現していま す。 CommonView は , StarView と同じく , 関数名の付け方に特別の工夫を講じていま せん。たとえば Zinc の関数名はすべて UI て、 始まりますが , CommonView の関数名はた とえば , すべて V て、始まるというようにはな っていないのてす。しかし , 名前の付け方 に決まりがあれば , 後てデバッグのときな んかに , すいぶん助かりますよ。 CommonView を使うときは , 〔現状て、は プラウザがないのて、〕アプリケーションは 手作業て、構築していきます。 Computer As sociates は現在 , プラウザを開発中だそうて、 す。それは , Smalltalk ふうのインタフェイ スに , lconoclass を結び付けたようなものに もちろん自分て、も各ライ プラリを使ってみました。 本稿の目的は , 各製品の一般的な長所と 弱点を指摘することて、す。また , それとと もに , べンダ各社の将来計画も紹介してい きます。 Glockenspiel CommonView Com uter Associates ネ土 なるそうて、す。実習マニュアルは , 簡単な ものから複雑なものへという構成になって います。ウインドウやメニュー作りから始 まって , 最後はグラフの作成て、す。 CommonView が提供している機能は , ど のプラットホームに対しても完全に同一て、 はありません。たとえば , その提供機能の 中には , OSF / Motif がまだ実装していない ものもあります ( それらはマニュアルに明記 されてはいますが ) 。て、すから , 同じコード を別のプラットホーム向けに使うときは , ソースコードをやや変えることが必要て、す。 それは , PC 用のバージョンがいちばん改版 歴が多くて , 機能が豊富だからて、す。たと えば , Windows て、はダイナミックデータ工 クスチェンジ (DDE) がて、きますが , その他 のプラットホームて、はて、きません。 Windows-$495, Windows NT ー $ 895 , OS / 2 ー $ 495 , Macintosh-$495 GuiId は , 本稿の企画にいち早く応じてく れた企業て、すが , 後から応じてくれた他の すべての製品と比べても , いちばんスッキ リとした製品と言えるて、しよう。ばくのよ うな , 古くからの C 使いのプログラマは , の点にたいへん満足しました。 Gui ld は最 初 , OS / 2 向けに書かれたのて、すが , 現在は Windows と Macintosh に対しても使えま す。 GuiId を使うと , 開発の仕上がりがきわ めて速いだけて、なく , ヘルプシステムやポ ータビリティガイドが充実しているし , ま たオリジナルプログラムの作り方も懇切丁 寧に説明しているのて、 , たいへん助かりま す。 Guild は , Neuron Data や XVT と同じく C のライプラリて、すから , どのプラットホー ムにもコンパイラがすて、にあるという点て、 有利て、す。たとえば OS/2 や Macintosh 向け にも , このライプラリ製品だけを発売て、き るのて、す。 Guild は , 分かりやすくて使いやすい , 対 Guild GuiId S stems 話的な設計システムを採用しています。 のツールのユニークな特徴のひとつが , 覗 き ( sno 叩 er ) 機能てす。つまりイベントの生 起をモニタて、きるのて、 , プログラムの実行 フローをチェックしながらのデバッグが可 能て、す。この機能は , キャラクタベースの 既存の C のコードを GUI に移植する人にとっ て , 大いに助かるて、しよう。 GuiId のライプラリは , 完全に 32 ビットの ライプラリて、す。て、すから , メモリをめぐ っての悩み事が減ります。ヘルプシステム は Windows と直結していて , 他のツールを 使わなくてもこれだけて、 , 移植性のあるハ イバーテキストシステムを作れます。ヘル プ以外にも , どのプラットホームにもない Guild 独自の関数が , まるて、親しいお隣さん のような仕事をしてくれます。そうすると , デモプログラムのような MDI (Multi-platfo rm DeveIopment lnterface) のアプリケー ションて、は , Motif の下て、も Macintosh の下 て、も , 子ウインドウはふつうのウインドウ と同じになります。 また Guild のシステムには , 幾つかの有力 データベースとインタフェイスするための ツールと関数の , きわめて充実したセット が含まれています。その機能などは , Guild が提供しているサンプルプログラムを見れ ば分かります。まず , いちばん単純なレベ ルとして , Guild 独自の内蔵データベースが あります。そのデータベースは , 可変長レ コードを使用するファイルの構造て、す。ま た別途 , GuiId のデータベースを作り , 変更 し , 見るためのプログラムも提供していま す。 さらに GuiId はオプションて、 , Paradox や OracIe へのプリッジも提供しています ( Par adox を使うときは Paradox Engine が必要 ) 。 もちろん , そのほかの C て、書かれたデータベ ースエンジンとのインタフェイスも容易て、 す。プリッジにより , Guild のイベントとの リンクが手早くすっきりとて、きるからて、す。 最初ばくは , Guild について , EigenEng ineering の Herbert Greenman に話を聞いて マルチプラットホーム G 団ライプラリの動向 みました。彼は GuiId をここ 1 年半ぐらい使 21

10. 月刊 C MAGAZINE 1993年7月号

の移植のやり方を説明する README ファイ ルを提供しています。このファイルも重要 て、す。 さてさて , どれが良いだろう ? それて、は , あなたにとっては , どの製品 が良いだろう ? ばくは個人的には , C 十十 をベースとするツールが好きて、す。必要と するオプジェクトはたいてい提供されてい ますから , それらから派生クラスを作って , 必要な機能を追加すれば済みます。 C のコー ドに対しても , そういうカスタマイズは可 能て、すが , C 十十〔のクラスの取り扱い〕に 比べると , ごたっくし , しかもソースコー ドが必須て、す。それに , ポータビリティの いちばん高い製品を選ぶべきて、すね。次の 週になると , 何が起きるか分かりませんか らね。 以上を念頭に置いて , ばくとしては Zinc または StarView をいちばんお勧めします。 また , zApp の次のバージョンにも , 期侍が 持てますね。 Zinc は , とくに DOS 方面の機能性て、は抜 群ぞす ( この製品の DOS のグラフィックスモ ードを見ると , みんな Windows だと思って しまいます ) 。グラフィックスて、もテキスト モードて、も , 16 ビット / 32 ビットのプロテク トモード〔 DOS-Extenders 〕をサポートし ていますしね。 Zinc は Pen-DOS もサポートしています。 この市場はそんなに大きくはありませんが , Z ⅲ c は書類や帳票類の互換性が必要な分野 はすべておさえる , という意気込みなのて、 す。もちろん , 書類や帳票類が行き来する 世界全体は , DOS 世界よりずっと大きいて、 すから , Zinc は DOS よりも GUI の世界へ移 行することを , あなたに勧めています。同 社のカスタマサポートは良質て、すし , 小さ な企業の割りには安定しています。ソース コードが付随しているのて、 , 欲しいものが たまたまライプラリ中になかったときなど は , 自分て、一から作ることも可能て、す。 ーム衆国て、ごく短期間 StarView は , 32 C MAGAZINE 1993 7 the wo 鰤 ro び曲曲 e 叩 sunglasses 00king a すべてのプラットホームにわたって同一に , 強力な製品にのし上がりました。ライ よい という理由にはなりません。ディス もそれは , 無闇にプログラムを肥大させて 問題て、、はなくなってきてはいますけど , て、 価格化によって , メモリは従来ほど深刻な ます。それに , 仮想記憶の普及や RAM の低 て , 実行ファイルが大きくなる傾向があり イプラリ製品は , 同種の C 十十製品と比べ りやすいと言えるて、しよう。しかし , C のラ ん。てすから , C の製品は , ある意味ぞは売 ステムにもある , という状況て、はありませ てしよう。 C 十十コンパイラは , まだどのシ ットホームの上にも C コンノヾイラがあること には決められません。 C の利点は , どのプラ C のライプラリ製品も , どれが良いか一概 とよいのて、すが。 されたことによって , そういう点が変わる 言えません。 Computer Associates に買収 いませんし , サポートもそんなに良質とは んね。だいいち , ソースコードを提供して と言わざるをえませ 中て、はいちばん弱い , も , やはり CommonView は , C 十十軍勢の ほうが C 十十 /Views よりやや勝ります。て トホームのサポートて、は , CommonView の ードが付いてきます。ただし UNIX のプラッ ソースコ スケールが大きいて、す。それに 性が咼いて、、すし , 付属のツール類も豊富て、 iews) のほうに軍配を上げます。製品の安定 ていますが , ばくとしては Liant (C 十十 /V C 十十 /Views と CommonView はよく似 あまり必要性の高い機能てはありませんね。 あ入力フィールドのチェックなどに比べて , るのか , ばくにはよく分かりませんが , ま OLE や DDE を Motif の上にどうやって翻訳す LE や DDE のような高級な機能もあります。 ートしています。それに StarView には , O ありません。しかし , 複数国の言語をサポ 列入力を確認し工ディットて、きる機能〕も フィールドをヴァリデートする機能〔文字 ew は Zinc ほど充実しておらず , また , 入力 ただし , DOS の土俵に関しては , StarVi ほとんど何て、も提供しています。 いますし , プログラマが必要とするものは プラリは非常に良く考えられて設計されて ク相手のスワッヒ。ングが必要なほど大きく なったら , 結局プログラムの実行速度はぐ んと落ちるのて、すからね。 お金のことを考えなくてもよいなら , Ne uron Data の製品をぜひとも欲しいて、すね。 どれだけ良質な C 十十ライプラリが存在して いても , て、す。このシステムは強力て、 , か っ使いやすく , そしてきわめてポータブル てす。ただし , テキストべースの開発は , いっさいて、きませんよ。 ばくは以前 , とても大規模て、複雑なプロ グラムを , Open lnterface を使ってわずか 9 か月弱て、完成させ , それがほとんどそのま まて、ポータブルだった , という光景を目に したことがあります。 て、も , ばくの場合 , お金はやはり問題て、 す。 NeuronData の製品は , 価格が高いだ けて、、なく , ランタイムフィーがかかります。 NeuronData は , 確かに強力なオプジェク トを提供してはいますが , 2 年前と違って , 競合製品もずっと充実してきています。 Open lnterface だけにある三つの主要な オプジェクトは , 表とグラフとプラウザ機 能て、す。サンプルアプリケーションはすへ て , 表オプジェクトを表示するところから 始まりますが , その〔表の表示 ~ 操作の〕 機能も他の製品よりやや多いと言えます。 zApp には , Open lnterface の半分程度のプ ラウザ機能があります。そしてグラフは , 特別な作業を必要としないオプジェクトを , どの製品も提供しています。 Open lnterfa ce は , 安定性の良い強力なプログラミング ツールぞあると共に , 〔出来上がったアプリ ケーションの〕実行性能も良いという点て、 ばくはお勧めします。また , GUI のルック & 、れぞれのネイテイプて、なく , フィールを , したいと思ったら , 法はありません。 この製品を使うしか方 Guild の製品は , C 製品の中て、はいちばん お買い得て、しよう。機能は充実しています し , 主要なプラットホームをほとんどカバ ーしています。ライプラリはきわめてオー プンて、 , 他のツールとの併用もしやすく ,