Compaq Visual Fotran キットには、様々な用途に対応した様々なサンプル・プログラムが提供されています。これらのサンプルは、説明用としてのみ提供されていますが、他のプログラムの元としてご自由にご利用いただけます。必要に応じてサンプルをコピーしてお使いください。サンプルは、テキスト・エディタを使って参照してください。サンプルは、HTMLHelp Viewer のトピックとしては提供されていません。
Visual Fortran CD-ROM の Info\Df\Samples フォルダにサンプルが置かれています。インストール時に「Custom」インストール・オプションを使ってサンプルをインストールするように選択した場合、基本設定では、サンプルは次のフォルダにインストールされます。
Program Files\Microsoft Visual Studio\Df98\Samples
サンプルをインストールしなかった場合、適切なサンプルのフォルダまたはファイルを Visual Fortran CD-ROM からご自分のハードディスクにコピーしてください (コピーしたファイルの「読み取り専用」属性を取り除いてください)。
...\Df98\Samples\Tutorial フォルダには、ビルド方法 (ソースの注釈として) を説明する「Tutorial」と呼ばれる短いサンプル・プログラムが提供されています。他のサンプルとは異なり、全ての Tutorial サンプルは 1 つのディレクトリに収められています。
他の (長い) サンプル・プログラムは、それぞれ独自のサブディレクトリに収められています。多くのサンプルは、プロジェクト・ワークスペース・ファイルも含んでいます。これにより、ビジュアル開発環境 (Microsoft Developer Studio) でプロジェクト・ワークスペースを開き、「FileView」ペインのソース・ファイルを表示し、サンプルをビルドし、実行することができます。
Visual Fortran サンプルには以下のものがあります。
高度なサンプル (Advanced)
高度なサンプルには、様々な別のカテゴリがあります。各カテゴリについて、以下で説明します。各カテゴリは、...\Df98\Samples\Advanced フォルダの下に各々のフォルダがあります。
Component Object Model のサンプル (Advanced\Com)
COM サンプルは、Visual Fortran での Component Object Model の使い方を説明しています。
adder:addr サンプルは、Fortran COM サーバーのデモで、Visual Fortran, Visual C++ および Visual Basic クライアントで利用できます。COM サーバーは、大変簡単な「adding machine」オブジェクトを実装しています。各クライアントは、サーバーを使用するダイアログボックスを表示します。Adder は、『Compaq Visual Fortran Programmer's Guide』の「Creating a COM Server」の例としても使われています。
autodice:autodice サンプルは、Fortran と Excel 97 間の相互作用について説明しています。このプログラムは、オートメーションを使って Excel 97 に指定した数字のヒストグラムを描画します。Fortran Module Wizard で作成した EXCEL97A モジュールを Excel へのインタフェースとして使います。このサンプルを実行するには、Microsoft Excel 97 がシステムにインストールされていなければなりません。
dlines:dlines サンプルは、Fortran と Developer Studio 間の相互作用について説明しています。このプログラムは、デバッグ行を IFDEF コンパイラー指示文に変換します。このプログラムは、ソース・ファイルを編集するために、COM を使って Microsoft Deverloper Studio を動かします。
DSAPP.90 に定義されている COM インタフェースは、...\Microsoft Visual Studio\Common\Msdev98\Bin\devshl.dll から取り出せます。
DSTEXT.F90 に定義されている COM インタフェースは、...\Microsoft Visual Studio\Common\Msdev98\Bin\devedit.pkg から取り出せます。
このプログラムは、コマンド行から以下のようにして実行します。
dlines inputsource outputsource debugchar ifdefname
Inputsource |
入力ソース・ファイルのファイル名です。注意:このファイルは、固定形式ファイルでなければなりません。 |
outputsource |
出力ソースファイルのファイル名です。 |
debugchar |
IFDEF コンパイラー指示文 (メタコマンド) と置き換えるソース・ファイル中のデバッグ行を表わす文字です。 |
ifdefname |
IFDEF コンパイラー指示文で使用する名前です。 |
このプログラムは、注釈文字として「C」や「D」以外のものを使っている Fortran PowerStation ファイルを編集するツールとして有用です。
dsbuild:dsbuild サンプルは、プロジェクト構成を再ビルドするために、オートメーションを使って Developer Studio を動かします。
DSAPPA.90 に定義されているオートメーション・インタフェースは、...\Microsoft Visual Studio\Common\Msdev98\Bin\devshl.dll から取り出せます。
DSBLDA.F90 に定義されているオートメーション・インタフェースは、...\Microsoft Visual Studio\Common\Msdev98\Bin\devbld.pkg から取り出せます。
このプログラムは、コマンド行から以下のようにして実行します。
dsbuild project.dsw configuration
project.dsw |
プロジェクト・ファイルのファイル仕様です。 |
configuration |
再ビルドする構成名です。 |
ErrorInfo:ErrorInfo サンプルは、COM ErrorInfo オブジェクトをサポートする Fortran COM Server のデモです。
iweb:iweb サンプルは、SHDOCVW.DLL 中の COM インタフェースを使って、ウェッブ・ブラウザを起動し、指定した URL をブラウザに表示するものです。このプログラムは、コマンド行から以下のようにして実行します。
iweb url
コマンド行に引数を指定しないと問い合せがあります。
safearray:safearray サンプルは、Fortran 2 次元配列を COM SafeArray に変換し、SafeArray からデータを読み戻します。
variant:variant サンプルは、Visual Fortran での VARIANT 操作ルーチンの使い方を説明しています。VARIANT は、COM インタフェースで使われます。
Fortran 90 記述子操作のサンプル (Advanced\Descript)
C や Pascal のような他言語では、ポインタは、アドレスが指す場所で情報がどのように組織化されているかという概念のない単純なメモリー・アドレスです。Fortran 90 ポインタは、まったく異なっています。Fortran 90 ポインタは、メモリー・アドレスを含んでいるだけでなく、配列の各次元の境界と刻み幅の情報を保持しています。これを行うために、Fortra 90 コンパイラーは、配列記述子と呼ぶものを使用します。これは、配列がどのように組織化されているかという情報を保存します。配列記述子は、他の実装ではドープ・ベクトルとも呼ばれています。
記述子の内容を直接操作することによって、厳密な Fortran 90 では不可能な操作を行うことができます。好みの方法で組織化したメモリーのどの場所 (配列境界が矩形であれば) とも Fortran 90 ポインタを結合することができます。C 言語のような他の言語に Fortran 90 ポインタを渡すことができますし、必要な情報を得るために記述子を他の言語に正しく挿入することもできます。言語が混在したプログラミングで重要なことは、Fotran の伝統的な列主順ではなくて C の行主順で参照する配列と結合する Fortran 90 ポインタを作成し、同じ配列に対して C と Fortran の両方から同じ添字を使えるようにすることです。
descript ワークスペースには、3 つのサブワークスペースを持っています。各サブワークスペースは、独自の実行形式ファイルを作成します。お互いに依存関係はありません。
cassign:Fortran 90 ポインタが、行主順で C 配列と結合されます。その後、このポインタは、Fortran に戻されます。Fortran は、C がそれらを書き込んだのとまったく同じ方法で C によって書かれた値を読みます。このプロジェクトは、descript.h を使います。このファイルは、C プロトタイプ、ルーチンおよび構造体定義を Fortran 90 ポインタに提供します。
fassign:Fortran 90 ポインタが、行主順で Fortran 配列と結合されます。その後、C ルーチンに渡されます。C ルーチンは、自然な C 表記で配列を読むことができます。
cube:Bitmap モジュールを利用することによって、Fortran 90 ポインタが作成されます。このポインタは、特殊な構造体 (行が予約されている) を持つ内部 .BMP ファイルを指します。一度、このポインタが設定されると、.BMP を QuickWin 子ウィンドウに直接書くことができ、素早く表示することができます。この方法は、素早く回転する立方体を表示するのに使われています。
OpenGL のサンプル (Advanced\Opengl)
OpenGL は、先進的な 3 次元グラフィックスを行うためのプロトコルです。Visual Fortran は、Fortran から OpenGL を利用するための Fortran 90 モジュールを含んでおり、ライブラリーをリンクします。この節のサンプル・プログラムは、これらの機能の利点を利用するプログラムを示しています。
すべての OpenGL サンプルは、Windows NT, Windows 2000, Windows XP, Windows ME と Windows 98 で動作しますが、Windows 95 に関しては、OSR2 リリースが必要になります。詳細は、よく寄せられる質問のページをご参照ください。
3dcube:3dcube サンプルは、黒の背景に 3 次元ボックスを表示します。ウィンドウを作成し、基本的な 3 次元グラフィックスに使用する形状を描画するために、QuickWin を使っています。
olympic:olympic サンプルは、5 つの輪を表示し、これらを回転、移動させ、最終的にオリンピックのマークを作成します。これは、OpenGL ライブラリーの呼び出し方法、32 ビットと 64 ビットのシステムの両方をサポートするためのコーディング方法、コマンド行から引数を読み込む方法や他の Fortran 90 概念とのインタフェース宣言について説明しています。Visual Fortran と Microsoft PowerStation Fortran で論理値の解釈方法が異なっているため、/fpscomp:logicals オプションをつけて、このサンプルをコンパイルする必要があります。QuickWin ライブラリーとリンクしなければなりません。
puzzle:puzzle サンプルは、ルービックキューブを表示します。ユーザーは、これを解くことができます。このサンプルには、色に関して問題があります。Windows インタフェースを管理するために Win32 を使っています。これもまた、32 ビットと 64 ビットのシステムの両方をサポートするためのコーディング方法を説明しています。
simple:simple サンプルは、ウィンドウに点、線、簡単な形状を表示します。Windows インタフェースを管理するために QuickWin を使っています。これは、2 次元グラフィックスを使った簡単なサンプルです。これの特徴は、色の使い方と標準色の設定方法を示している点です。
wave:wave サンプルは、面が波打っている図を表示します。Windows インタフェースを管理するために QuickWin を使っています。このサンプルは、OpenGL の使い方だけでなく、アニメーション、ウィンドウにフォーカスがある間に入力した文字を捕まえる方法などを含んだ興味のあるデモを提供しています。捕まえられる文字には以下のものがあります。
- C:波の等高線を変更します
- スペース:アニメーションを中断させます。もう一度、スペース・キーを押すと再開します。
- S:波の影を変更します
- A:波を回転させます。もう一度、Aキーを押すととまります。
- L:波の色を変更します。
Win32 API のサンプル (Advanced\Win32)
Visual Fortran は、Win32 API レベルの Windows プログラミングを行うための Fortran 90 モジュールとライブラリーを提供しています。ここで紹介するサンプルは、Win32 API を使った例です。
angle:angle サンプルは、GUI を管理するために Windows インタフェースを使用しています。これは、イベント・ディスパッチャ、ペンやダイアログボックスの使い方を含む基本的な Windows プログラムを示しています。angle サンプルは、円弧と直線からなる形状を表示し、ユーザーが X, Y 座標、円弧の角度、円弧の半径を入力することができ、それらを元に図形を再描画します。
bounce:bounce サンプルは、Win32 を使いますが、Windows ベースではなく Fortran Console アプリケーションを作成します。これは、文字 "A" が入力されるといつでも新しいスレッドを作成するマルチスレッド・アプリケーションです。最大 32 個のスレッドを作成します。各スレッドは、画面中を異なった色の矩形を反射させます。文字 "Q" を入力すると、すべてのスレッドを終了します。このサンプルは、/fpscomp:logicals, /fpscomp:ioformat, /fpscomp:general の互換性に関するコンパイラー・オプションを必要します。Developer Studio では、「Settings」ダイアログボックスの「Fortran」タブ中の「Compatibility」で設定します。
check_sd:check_sd サンプルは、セキュリティ記述子の使い方を説明しています。このサンプルの目的は、セキュリティ記述子を操作しなければならない人に開始点となるサンプル・コードを提供することでこのような人たちの手助けをするものです。このサンプルは、ファイルのセキュリティ記述子を検証していますので、他のオブジェクトのセキュリティ記述子を検証するように簡単に修正できるようになっています。 「check_sd」を引数なしで実行すると、A: 装置のセキュリティ記述子を検証します。「check_sd d:\a.fil」と実行すると、d:\a.fil ファイルを検証します。この場合、d: は NTFS ファイル・システムで書式化されていなければなりません。これは、NTFS ファイル・システムのみがセキュリティ記述子を持っているからです。
cliptext:cliptext サンプルは、テキストをクリップボードへまたはクリップボードからコピーする方法を説明しています。GUI を管理するために Windows インタフェースを使っています。イベント・ディスパッチャを含む WinMain と MainWndProc の使い方の説明もしています。これには、「About」ボックスが「File」メニュー項目の下にありますが、ヘルプは含まれていません。
cmndlg:cmndlg サンプルは、「About」、ファイル参照ダイアログ、エラー・メッセージ・ダイアログを含む共通ダイアログボックスの使い方を説明しています。各ダイアログボックスは、3 通りの使い方で説明しています。標準、修正テンプレートの利用、hook 関数の利用の 3 通りです。このサンプルは、「Hello World」を画面に表示し、ユーザーがテキストや色などを変更できるようにしています。
consolec:consolec サンプルは、コンソール・テキスト色属性を設定するためや属性情報を得るための SetConsoleTxtAttribute() と GetConsoleScreenBufferInfo() 関数の使い方を説明しています。これは、dfwin.lib とリンクする Fortran Console アプリケーションです。consolec に引数が渡されない場合、コマンド・ウィンドウに色サンプルを出力します。第 1 引数は前面色で、第 2 引数は背景色です。指定できるオプションは、BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW または WHITE です。これらの色引数は大文字で入力しなければなりません。そうでなければ、エラーが出力されます。
crypto:crypto サンプルは、ファイルを暗号化、暗号化解除を行うための Cryptography API の使い方を説明しています。
cursor:cursor サンプルは、カーソルを操作し、領域を選択する方法を説明しています。これは、GUI を管理するために Windows インタフェースを使用しています。これは、ユーザーがボックス (領域) を描画するか、RETURN キーを入力した時に 1027 個の素数を計算します。計算中、カーソルは砂時計に変ります。
drives:drives サンプルは、システム上のローカルとリモート両方の全ドライブを確定し、それらのファイル・システム形式を確定します。これは、dfwin.lib とリンクする Fortran Console アプリケーションです。
event:event サンプルは、非同期 I/O を使った場合を含むイベントの基本概念を説明しています。これは、1 つのファイルを非同期に読み込み、他のファイルに同期的に書き込みます。これは、dfwin.lib とリンクする Fortran Console アプリケーションです。これは、入力ファイル名と出力ファイル名の 2 つの引数を必要とします。これは、1 つのファイルを別のファイルに転送します。Developer Studio での設定方法については、readme.txt を参照してください。
exitwin:exitwin サンプルは、アプリケーションのシャットダウン方法を説明しています。これを実行すると、すべてのアプリケーションを閉じてログオフするかどうかを問い合わせます。オプションとして、システムを再起動するようにコンパイルすることもできます。これは、GUI を管理するために Windows インタフェースを使っています。
floppy:floppy サンプルは、Win32 API を使ってフロッピー・ディスクを参照する方法を説明しています。これは、dfwin.lib とリンクする Fortran Console アプリケーションです。これには、2 つの主機能があります。
- 「floppy ?g a:」と実行すると、フロッピー・ディスクの構成が表示されます。
- 「floppy ?c a: bootdisk」と実行すると、a: のブートディスク・イメージを作成します。「floppy ?c bootdisk a:」と実行すると、ブートディスク・イメージを a: に作成します。
generic:generic サンプルは、Windows アプリケーションを作成する時に必要となる基本概念を説明しています。これは、初めて Windows プログラムを作成する時のベースとして利用することができます。generic に実装されている機能は以下の通りです。
- カスタム・アイコン
- 標準メニューバー
- 標準ヘルプ・メニュー
- 完全な WinHelp のサポート
- キーボード・アクセラレータの使用
- バージョン管理情報
getdev:getdev サンプルは、GetDeviceCaps() 関数の使い方を説明しています。また、このサンプルでは、主ウィンドウがダイアログボックスで、すべての関連するコードがダイアログボックス用ウィンドウ手続にあります。これは、イベントを処理するために MainWndProc を使う他の Windows を基本としたアプリケーションとは異なっています。
getopenfilename:getopenfilename サンプルは、GetOpenFileName() 関数の使い方を説明しています。これを実行すると、プロジェクト・ディレクトリ中のテキスト・ファイルか Fortran ファイルの一覧が表示されているダイアログボックスが表示されます。ファイルを読み取り専用で開くオプションもあります。
getsys:getsys サンプルは、GetSysColor(), GetSystemDirectory(), GetSystemInfo(), GetSystemMetrics(), GetSystemPaletteEntries() および GetSystemTime() 関数の使い方を説明しています。また、このサンプルでは、主ウィンドウがダイアログボックスで、すべての関連するコードがダイアログボックス用ウィンドウ手続にあります。これは、イベントを処理するために MainWndProc を使う他の Windows を基本としたアプリケーションとは異なっています。
inherit:inherit サンプルは、1 つのプロセスから子プロセスに引き継がれるファイル・ハンドルについて説明しています。これは、stdout と stderr の置き換えとしてのアノニマス・パイプの使い方も説明しています。これには、child と inherit の 2 つのプロジェクトがあります。inherit プロジェクトは、他のプロジェクトがなくても実行することができる inherit.exe を作成します。inherit を実行するには、2 つのパラメタを指定します。
- stdout と stderr に書き出すためのトレース・ファイル
- 実行するためのコマンド
inherit プログラムは、QuickWin 内で実行されるため、これは「console-less」親プロセスです。パイプを行おうとする時、構成に問題があります。
このサンプルを使うためには、まず現在のプロジェクトを child に設定し、ビルドします。その後、現在のプロジェクトを inherit に設定し、ビルドします。実行する前に、プロジェクトにある readme.txt を読んでください。このサンプルを実行するために、プロジェクト構成で変更しなければならないことが、ここに書かれています。
input:input サンプルは、マウス・ボタン・イベントとキーボード・イベントの基本的な処理を行う基本的な Windows アプリケーションです。これは、入力メッセージをどのように受け取り、メッセージと共にどのような付加情報が送られてくるのかを示しています。これを実行すると、現在のポインタ位置、右または左マウス・ボタンのどちらがクリックされたかを表示し、5 秒毎にメッセージを表示します。
maskblt:maskblt サンプルは、マスク・ビット・ブロック転送について説明しています。現在の形式または Mcirosoft から送られた形式のどちらでも、正しく動作しているかどうかは不明です。しかしながら、クリップボード機能で使うビットマップとキーボード・アクセラレータをサポートする関数の基本的な呼び出しについての説明をしています。
MDI:MDI サンプルは、複数文書インタフェースの使い方を説明しています。これは、単純なウィンドウを作成し、その中に子ウィンドウを作成します。これは、子ウィンドウのタイトルも設定することができます。
menu:menu サンプルは、ポップアップ・メニュー、ユーザー定義メニューとメニュー関数の使い方を説明しています。これは、ユーザーがメニューから項目を選択したり、ポップアップ・メニューを呼び出したりすることができる簡単なプログラムですが、メニューの使い方の大変よい例です。
mltithrd:mltitrhd サンプルは、マルチスレッドの使い方を説明しています。主プログラム、mltithrd.f90 には、ファイルの先頭にマルチスレッド・アプリケーションの書き方の簡単な説明があります。これは、複数文書インタフェースを使って子ウィンドウを作成し、各ウィンドウで色の付いた軌跡を描画します。
output:output サンプルは、ウィンドウに文字列を描画するための TextOut() と DrawText() 関数の使い方を説明しています。これは、テキストを出力したり、矩形、楕円、円弧などの簡単な図形を描画する簡単なサンプルです。
owncombo:owncombo サンプルは、コンボボックスと作者描画コントロール形式に対する関数とメッセージの使い方を説明しています。これは、ウィンドウを表示し、ユーザーに様々なコンボボックス形式を利用させます。
paths:paths サンプルは、パスとクリッピング領域の使い方を説明しています。パスは、塗り潰しのみ、外郭線のみ、両方の絵や形状です。paths は、様々な描画アプリケーションで利用されています。このサンプルは、設定できる 6 つの異なった形式のパスについて説明しています。このリリースでは、アプリケーションを最初に起動すると、ウィンドウが大変小さく表示されるので、手動で大きくしなければなりません。
platform:platform は、メニュー選択とポップアップ・ダイアログボックスの簡単な使い方を説明しています。これは、これを実行しているプラットフォームに関する情報をユーザーに与えるメニューを表示します。
plgdraw:plgdraw サンプルは、PlgBlt() 関数の使い方を説明しています。PlgBlt() 関数は、元のデバイス・コンテキスト中の指定した矩形から転送先のデバイス・コンテキスト中の指定した平行四辺形に色データのビットをビット・ブロック単位に転送します。最も左のグリッドに真中のグリッドの内容を写したバージョンを表示します。
polydraw:polydraw サンプルは、マウスのクリック、移動、キーボード入力との組合せ (CTRL や SHIFT キー) を捕まえる方法を説明しています。これは、ユーザーが線や曲線を描画し、画面上の点を移動することができるようにした簡単なプログラムです。
process:process サンプルは、他のプログラムからプロセスを作成したり、終了させたりする方法を説明しています。ユーザー・インタフェースは、「Create」と「Terminate」の 2 つのボタンを持つダイアログボックスと作成したプロセス一覧を表示するウィンドウの簡単なものです。
registry:registry サンプルは、Registry 関数の使い方を説明しています。これは、システム・レジストリからの情報を表示し、ユーザーが様々な階層を見ることができるようにしています。これは、大変簡単なサンプルですが、例として利用していただけます。
select:select サンプルは、カーソルの操作方法と領域の選択方法を説明しています。これには、2 つのプロジェクトがあります。
- Select は、領域を選択するためのルーチンのダイナミック・リンク・ライブラリー (DLL) を作成します。
- Demo は、上記の select ライブラリーを利用する実行形式ファイルを作成します。
このサンプルを使うには、まず、現在のプロジェクトとして select を選択し、select.dll をビルドします。次に、現在のプロジェクトとして demo を選択し、実行形式ファイルをビルドします。
setinfo:setinfo サンプルは、ファイル属性の設定方法を説明しています。これは、ユーザーが「FileName」欄にファイル名を入力する、簡単なユーザー・インタフェースを持っています。「GetInfo」ボタンは、ファイルに関する情報を取り出し、それを表示します。ファイル情報を設定するには、「Time」と「Date」欄の値を修正し、「SetInfo」ボタンをクリックします。ファイル属性を設定するには、適当なチェックボックスをクリックし、「SetAttr」ボタンをクリックします。
このサンプルは、GetFileTime() と SetFileTime() 関数も説明しています。
sharemem:sharemem サンプルは、2 つの独立したプロセス間での名前付き共有メモリーの使い方を説明しています。これには、sharemem と othrproc の 2 つのプロジェクトがあります。お互いに独立しているので、ビルドに順番ありません。このサンプルを使うには、まず Sharemem を起動し、次に Otherproc を起動します。【注意:Developer Studio から起動しないでください。】マウスが Sharemem で動いている間、フォーカスが Othrproc にあるほうが、より視覚的な効果があります。マウスを Sharemem 上で移動させると、それと同じ Othrproc 上の座標に疑似マウスが表示され、同じように移動します。
startp:startp サンプルは、与えられた優先度クラスでプロセスを開始することを含む、CreateProcess() の様々なパラメタについて説明します。これは、start コマンドによく似ていますが、付加的な機能があります。Developer Studio から動作させないでください。Developer Studio から動作させると、コンソール・ウィンドウに使い方が表示されるだけです。
streblt:streblt サンプルは、StretchBlt 関数の使い方を説明しています。このブロック転送関数は、目的のデバイス・コンテキストの異なった領域に一致するように、ビットマップを拡大したり縮小したりするオプションを与えるもので、簡単な BitBlt よりも優れたものです。
subclass:subclass サンプルは、ボタン、エディットボックス、リストボックスのような標準ウィンドウ・コントロールの副クラス化について説明します。これは、ユーザーが主ウィンドウに任意の数の子コントロールを作成できるようにします。これらのコントロールは副クラス化され、副クラス手続はユーザーにコントロールを移動したり大きさを変更したりすることができるようにします。メニュー項目にテスト・モードをオン/オフにするものがあります。これがオンになっていると、副クラス手続は標準手続にすべてのメッセージを渡し、コントロールは標準のように動作します。
takeown:takeown サンプルは、全ての参照が禁止されているファイルに管理者 (Administrator) が参照できるようにする方法を説明しています。これは、管理者アカウントから実行しなければなりません。このサンプルで使用するサンプル・ファイル takeown.txt があります。
termproc:termproc サンプルは、プロセス ID で指定されたプロセスを終了させる方法を説明しています。これは、Developer Studio でビルドすることができますが、コマンド行から実行してください。
threads:threads サンプルは、スレッドを中断、再開、優先度の設定について説明しています。これは、画面内を赤の線を描画するスレッドと緑の線を描画するスレッドを実行します。2 つのスレッドを中断、再開、優先度を設定するためのメニューがあります。
timers:timers サンプルは、SetTimer() と KillTimer() 関数の使い方を説明しています。これは、ウィンドウに 4 つの矩形を作成します。各矩形は、タイマーがオフになるまで異なった色で色を反転させます。このサンプルは、2 つのタイマー機構を説明しています。
tls:tls サンプルは、単一DLLを呼び出す複数のスレッドのサンプルを説明しています。.DEF ファイルを使うのではなく、DLL からエントリ・ポイントをエクスポートするための DLLEXPORT の使い方も説明しています。このサンプルには、tlsdll と tls の 2 つのプロジェクトがあります。tls プロジェクトが tlsdll プロジェクトに依存するように、このワークスペースは構成されています。tls をビルドすると、自動的に tlsdll がビルドされます。これを実行すると、ユーザーがメッセージボックスの「OK」をクリックするまでブロックされ、実行が中断しています。スレッドは、最小化したウィンドウでも実行することができます。
virtmem:virtmem サンプルは、様々な仮想メモリー API の使い方を説明しています。これは、異なった属性を持つようにページを変更するメニュー項目を持った主ウィンドウを持っています。メモリーに書き込むためには、ページがコミットされ、読み取り/書き込み参照許可に設定されなければなりません。読み取りのみのページに書き込もうとすると、「memory cannot be read」のエラーが発生します。
world:world サンプルは、世界座標変換でメタファイルからのイメージを拡大縮小したり、変換させたりする方法を説明しています。これは、世界空間とページ空間の線形変換を行うため、そして拡張されたメタファイルを使うために SetWorldTransform() と PlayEnhMetaFile() 関数を使っています。このサンプルには、他でも使うことができるかもしれない簡単なサンプル・メタファイル sample.emf が用意されています。
wxform:wxform サンプルは、世界座標変換について説明しています。これには、ヘルプを表示するため、マウス動作を追跡するため、そして変換情報をユーザーに入力させるための 3 つのダイアログボックスがあります。ヘルプ・ダイアログボックスで説明されているように、画面を 4 分割した各部分は異なった性質を持っています。このサンプルは、異なったウィンドウ手続間で連絡するためのメッセージの使い方も説明しています。
ダイアログボックス (Dialog)
Dialog サンプルは、Visual Frotran を通して利用可能な新しいダイアログ・コントロールについて説明しています。モードレス・ダイアログボックスの使い方も説明しています。以下のサンプルは、ディレクトリ ...\Df98\Samples\Dialog の下のサブフォルダにあります。
CelsiCon:CelsiCon サンプルは、ダイアログボックスを使う Fortran Console アプリケーションです。これは、ダイアログ初期化イベント WM_INITDIALOG へのドキュメントされていないフックを使用しています。これはまた、Win32 呼び出しを使ったダイアログボックスへの特別なカスタマイズを加えています。ソース・プログラムの簡単な修正で、QuickWin アプリケーションとしてビルドすることもできます。
dllprgrs:dllprgrs サンプルは、DLL の Visual Fortran ダイアログ手続の使い方を説明しています。DLL の公開ルーチンには以下のものがあります。
- DisplayProgressBox:プログレスバーを含むダイアログボックスを表示
- SetProgress:現在のプログレスバーの値を設定
- DestroyProgressBox:ダイアログボックスを破壊
fxplorer:fxplorer サンプルは、Visual Fotran ダイアログ手続を使う SDI Fotran Windows アプリケーションについて説明しています。これは、アプリケーションの主ウィンドウで Internet Explorer ActiveX コントロールを使います。Internet Explorer コントロールは、Internet Explorer と共にインストールされます。Internet Explorer がインストールされていなければ、このサンプルは動作しません。
mmplayer:mmplayer サンプルは、Visual Fortran ダイアログ手続を使うダイアログを基本とした Fortran Windows アプリケーションについて説明しています。これは、アプリケーションの主ウィンドウで ActiveMovie コントロールを使います。ActiveMovie コントロールは、Internet Explorer と共にインストールされます。Internet Explorer がインストールされていなければ、このサンプルは動作しません。
progress:progress サンプルは、プログレスバーを含む Visual Fortran ダイアログ関数を使うダイアログを基本とした Fortran アプリケーションについて説明しています。アプリケーションの主ウィンドウは、ダイアログボックスです。これには、「Start」、「Stop」、「Exit」ボタンに加えてプログレスバーが付いています。「Start」ボタンは、100 ステップに渡る長い処理を開始します。この簡単なサンプルでは、各ステップは 0.25 秒間休止します。
showfont:showfont サンプルは、Visual Fortran ダイアログ関数を使うダイアログを基本とした Fortran アプリケーションについて説明しています。アプリケーションの主ウィンドウは、ダイアログボックスです。これは、タブコントロールの使い方を説明しています。タブコントロールは、フォントの性質を選択するために使用します。フォントは、サンプル・テキスト文字列を表示するために使われます。
therm:therm サンプルは、Visual Fortran が提供する様々な機能を含む Visual Fortran ダイアログ関数を使うダイアログを基本とした Fortran アプリケーションについて説明しています。アプリケーションの主ウィンドウは、ダイアログボックスです。これは、スピンコントロール、スライダー・コントロール、プログレスバー・コントロール、ピクチャ・コントロールを使っています。これは、複数のモードレス・ダイアログボックスの使い方も説明しています。
whizzy:whizzy サンプルは、Visual Fortran が提供するダイアログ・マネージャ・モジュールで利用可能な多くのコントロールについて説明しています。これをビルドする場合、「Logical Values」互換性オプションが設定されていることに注意してください。これは、ダイアログ・マネージャ・ルーチンと正しく相互作用するために必要です。
DLL のサンプル (DLL)
Visual Fortran では、ダイナミック・リンク・ライブラリー (DLL) を作成し、利用することができます。DLL は、モジュール (.EXE または .DLL) を呼び出すことによって、実行時にロードされます。DLL がロードされると、DLL は呼び出したプロセスのアドレス空間にマップされます。DLL の読み込みには、一般に、実行形式ファイル起動時と実行時の2通りがあります。実行形式ファイルが DLL のインポート・ライブラリーとリンクされた場合、コードは実行形式ファイル起動時に実行形式ファイルのアドレス空間にマップされます。インポート・ライブラリーが利用不可の場合、DLL は Windows API 呼び出しでマップされる必要があります。以下の DLL のサンプルは、ディレクトリ ...\Df98\Samples\DLL の下のサブフォルダにあります。
DLLEXP1:DLLEXP1 サンプルは、2 つのプロジェクトを含むワークスペースのデモを行います。1 つのプロジェクトが DLL を作成し、もう 1 つのプロジェクトが最初のプロジェクトが作成したインポート・ライブラリーとリンクして、作成された DLL を使用します。アプリケーションを実行する場合、この DLL が PATH 環境変数で定義されているディレクトリのどこかになければなりません。
DLLEXP2:DLLEXP2 サンプルは、DLL で定義されている COMMON 変数が複数のプログラム間でどのように共有されるかを説明しています。2 つのプログラムは、同じ DLL に対してリンクされます。最初のプログラムを実行し、実行を中断させます。続いて、2 番目のプログラムを実行し、COMMON 変数を変更して終了します。更に、最初のプログラムを再開し、変更した値を表示します。
LoadExp1:LoadExp1 サンプルは、インポート・ライブラリーを使わずに動的に DLL をマップする方法を説明しています。このワークスペースには、2 つのプロジェクトがあります。1 つは DLL を作成するプロジェクトで、もう 1 つはこの DLL を利用する実行形式ファイルを作成するプロジェクトです。
例外処理のサンプル (ExceptionHandling)
Visual Fortran バージョン 6.5 は、ユーザーが浮動小数点例外処理を簡単に行えるように幾つかのルーチンを提供しています。
ClearFP:ClearFP サンプルは、CLEARSTATUSFPQQ のデモです。このサブルーチンは、Intel 浮動小数点ステイタス・ワード例外フラグをクリアします。
Cslexcp2:Cslexcp2 サンプルは、Fortran Console アプリケーションでの例外と終了処理のデモです。
Cslexcp4:Cslexcp4 サンプルは、保護された Fortran コードで発生した例外をテストすることができるように C Try/Except ブロック中の Fortran エントリ・ポイントをラップする方法のデモです。
GetEptrs:GetEptrs サンプルは、SIGNALQQ (または C signal() 関数) で信号ハンドラを確立する方法、TRACEBACKQQ と GETEXCEPTIONPTRSQQ Fortran ライブラリー・ルーチンをハンドラからトレースバック表示を生成するために使用する方法をデモしています。
Winexcp1:Winexcp1 サンプルは、Fortran Windows アプリケーションでの例外処理のデモです。構造化された例外処理 (SEH) を使った GENERIC サンプルを基本にしています。
VBVF1:VBVF1 サンプルは、Visual Fortran DLL を呼び出す Visual Basic アプリケーションでの例外処理のデモです。これは、Intel のみのサンプルです。
ISO 可変長文字列のサンプル (Isovar))
Isovar サンプルは、Fortran 95 の動的長さ文字列へのインタフェースの 1 つの実装のデモです。このモジュールで定義されている一般に参照可能なインタフェースは、ISO/IEC 1539-2: 1999 標準に準拠しています。Isovar サンプルは、...\Df98\Samples\Isovar の下のディレクトリに分割され、以下のものがあります。
unittest:unittest サンプルは、ISO 可変文字列モジュールの各機能をテストする 80 個の小さな関数を含んでいます。テストされる機能の幾つかは、結合、割当、副文字列の検索です。
vocab:vocab サンプルは、テキスト・ファイルを読み、ファイルから見つかった各語と頻度の一覧を保存するために ISO 可変文字列モジュールを使っています。ファイルを完全に読み終えると、語一覧と各語の頻度を出力します。
wrdcnt:wrdcnt サンプルは、テキスト・ファイルを読み、検出された語数を保存するために ISO 可変文字列モジュールを使っています。ファイルを完全に読み終えると、ファイルで見つかった総語数を表示します。
その他のサンプル (Misc)
Visual Fortran やユーティリティの特定の様相を示すその他のサンプルがあります。以下のその他のサンプルは、ディレクトリ ...\Df98\Samples\Misc の下のサブフォルダにあります。
calcaver:calcaver サンプルは、インタフェース宣言、形状引継ぎ配列、モジュールの使い方を含む Fortran 90 機能について説明しています。これは、Developer Studio を使ってもビルドできますし、NMAKE とメイクファイルを使ってもビルドすることができます。
char2:char2 サンプルは、ユーティリティ fsplit90 の使い方を説明しています。このユーティリティは、ファイル中の各プログラム単位を別なファイルに書き出します。このサンプルのファイルが一度分離されると、charexmp と同じになります。NMAKE を使ってビルドします。
charexmp:charexmp サンプルは、文字操作、アルファベットの配列の作成、それらを画面に出力することを行います。これは、Developer Studio を使ってもビルドできますし、NMAKE とメイクファイルを使ってもビルドすることができます。
console:console サンプルは、基本コンソール操作ルーチンの幾つかのデモです。console は、コンソールの大きさを設定し、コンソールをクリアし、コンソールの最上位に線を引くためにカーソルを移動し、その下にまた線を引きます。DOS コマンド・プロンプトは、コンソールの例です。
cvt_lf_unf:cvt_lf_unf サンプルは、Lahey Fortran で作成したデータ・ファイルを書式なし 2 進ファイルに変換します。このサンプルには 2 つのプロジェクトがあります。
- cvt_lf_unf プロジェクトは、変換ユーティリティをビルドします。
- test プロジェクトは、cvt_lf_unf を使って Lahey Fortran で作成したデータ・ファイルを変換し、Visual Fortran でそれを読みます。
fctrl:fctrl サンプルは、再帰について説明する非常に簡単なサンプルです。これは、Fortran Console アプリケーションで、整数 1 ~ 12 の階乗を計算し表示します。13! は、32 ビット整数には大きすぎます。これは、Developer Studio を使ってもビルドできますし、NMAKE とメイクファイルを使ってもビルドすることができます。
fivt:fivt サンプルは、Visual Fortran の基本的なインストレーション検証プログラムです。これは、プログラムをコンパイル、リンクし、期待したコンパイラーのバージョンが使われたことを確認するためにリスト・ファイルを読みます。コマンド行と Developer Studio のどちらからでもビルド、実行することができます。コマンド行から実行する場合、FORT5=FIVT.INP を設定するか、FIVT < FIVT.INP を使います。Developer Studio から実行する場合、このディレクトリにある README.TXT を参照してください。
forprint:forprint サンプルは、Fortran 復帰制御を含むテキスト・ファイルを選択し、印刷するための「OpenFile」と「Print」ダイアログボックスを使うコンソール・アプリケーションです。forprint は、どのプリンタへも出力ができるテキスト・ファイルを生成するために、ファイルを事前に処理します。コマンド行と Developer Studio のどちらからでもビルド、実行することができます。
fppdemo:fppdemo サンプルは、Fortran プリプロセッサーの使い方を説明しています。これは、Fortran 90 標準の一部であるプリプロセス用指示文に対立するものとしてのC言語のようなプリプロセッサーです。NMAKE を使ってビルドするのが一番簡単ですが、Developer Studio のワークスペースも用意されています。このワークスペースには 5 つのプロジェクトがあります。各プロジェクトは、fpp 定義を変えています。これは、Developer Studio からコンパイラーに fpp フラグを渡す方法を示しています。fpp フラグは、「Settings」ダイアログボックスで設定します。
lcinfo:lcinfo サンプルは、言語 (自然言語) 拡張をサポートする NLS ルーチンの使い方を説明しています。これは、言語の選択によって文字列順がどのようになるかも説明しています。lcinfo サンプルは、言語と通貨の設定がコンピュータ上でどのように異なるかを示す情報を印刷するコンソール・アプリケーションです。
mandel:mandel サンプルは、Fortran サブルーチンを呼び出す C 言語の主プログラムの簡単な Win32 アプリケーションです。
uopen:uopen サンプルは、OPEN 文での USEROPEN キーワードの使い方を説明しています。このサンプルでは、Fortran ファイルが特殊な OPEN を行うために C 言語プログラムを呼び出しています。
言語が混在したプログラミングのサンプル (Mixlang)
Visual Fortran は、Visual C/C++ および Visual Basic を含む他の言語から呼び出すことができます。また、Visual Fortran は、C/C++ のような他の言語を呼び出すことができます。ディレクトリ ...\Df98\Samples\Mixlang の下のサブフォルダにある以下のサンプルは、他の言語との呼び出し標準や引数定義について説明しています。
c_call_f:c_call_f サンプルは、C (または C++) 言語の主プログラムが Fortran サブルーチンを呼び出す言語が混在したアプリケーションのサンプルです。これには、2 つの異なった形式があります。1 つは、Fortran コードと C コードが同じプロジェクトでビルドされるもので、もう 1 つは、Fortran コードが別の DLL としてビルドされ、C コードから呼び出されるものです。このサンプルは、Fortran に文字引数を渡す方法についても説明しています。
delphi:delphi サンプルは、Visual Fortran と Borland Delphi 間の様々な会話のデモです (Intel のみ)。Delphi がこのサンプルをビルドし、実行するためにインストールされている必要があります。
- CallDVF:CallDVF サンプルは、Delphi からの Fortran 呼び出しのデモです。INTEGER 関数、REAL 関数、CHARACTER 関数の例があります。
spline:spline サンプルは、Visual C/C++ との言語が混在したプログラミングについて説明しています。spline は、Developer Studio からビルドする方が最も簡単です。このワークスペースには、Console, QuickWin, VC および spldll の 4 つのプロジェクトがあります。spldll プロジェクトは、他のプロジェクトが使用する DLL を作成します。spline サンプルは、座標に対して「曲線が最もよく一致する」アルゴリズムを実装しています。座標は、ウィンドウをクリックするかデータ・ファイルから読み込まれます。このワークスペースの最初の 3 プロジェクトは、異なった例を使って、異なったプログラムを作成します。
- Console は、コンソール・ウィンドウで起動され、データ・ファイル fsplit.dat から入力データを読み込むアプリケーションです。
- QuickWin は、マウスのクリックで入力データを読み込む QuickWin インタフェースを使ったアプリケーションです。
- VC は、マウスのクリックで入力データを読み込む Visual C/C++ および Microsoft Foundation Classes を使ったアプリケーションです。
このワークスペースとプロジェクトは、プロジェクト間の依存関係を取り扱う方法についても説明しています。これは、プロジェクトをリンクし、実行する前に、依存する .DLL ファイルをローカル・ディレクトリにコピーします。
vb:このディレクトリには、Visual Fortran と Visual Basic 間の相互作用について説明している様々なサンプルがあります。すべての場合で、実行形式ファイルは Visual Basic プログラムです。Visual Fortran プロジェクトと同様に Visual Basic プロジェクトも各サンプルに用意されています。
- arrays:arrays サンプルは、Visual Basic から Visual Fortran に文字配列を渡す方法を説明しています。
- callback:callback サンプルは、Visual Fortran サブルーチンに Visual Basic コールバック・ルーチンを渡す方法を説明しています。
- returnstring:returnstring サンプルは、Visual Basic からFortran 文字関数を呼び出す方法を説明しています。
- simple:simple サンプルは、Visual Fortran から Visual Basic に数値を渡すごく基本的な相互作用について説明しています。
- typearrays:typearrays サンプルは、Visual Basic から Visual Fortran へユーザー定義型配列を渡す方法を説明しています。これには、Fortran ルーチン内からその型の各欄への書き込み方法も含まれます。
MASM:これは、Visual Fortran と MASM, Microsoft の Assembly Language 間の様々な会話のデモです (Intel のみ)。MASM がこのサンプルをビルドするためにインストールされている必要があります。
- simple:simple サンプルは、Fortran から MASM の簡単な呼び出しのデモです。
- vecprod:vecprod サンプルは、MASM プログラムで 2 つのベクトルの内積の計算法のデモです。2 つのベクトルは、Fortran から MASM に渡され、結果が Fortran 主プログラムに返されます。
- allocabl:allocabl サンプルは、静的配列ではなく割り当て可能配列を使って vecprod を書き換えたものです。
QuickWin のサンプル (Quickwin)
Visual Fortran は、QuickWin と呼ぶライブラリーを提供しています。QuickWin は、Visual Fortran との Windows インタフェースを簡略化したバージョンでアプリケーションをビルドするためのライブラリーです。QuickWin ライブラリーは、Windows 機能の豊富な集合を提供していますが、完全な Windows Applications Programming Interface (API) を含んでいるわけではありません。付加的な機能を使いたい場合、QuickWin を使うのでなく直接 Win32 API を呼び出す Windows アプリケーションとして設定すべきです。ディレクトリ ...\Df98\Samples\QuickWin の下のサブフォルダにある以下のサンプルは、QuickWin の使い方について説明しています。
calendar:calendar サンプルは、簡単な QuickWin アプリケーションです。これは、今月のカレンダーをグラフィックスで表示するものです。
chaos:chaos サンプルは、メニュー、入出力用のダイアログボックス、エラー状態を知らせるためのメッセージボックス、エラー条件から回復しプログラムを実行しつづける方法、QuickWin グラフィックス・ルーチン、マルチスレッド化、Fortran 90 について説明しています。このディレクトリの README.TXT は、このプログラムとアルゴリズムについて詳しく説明しています。
cleanwin:clearwin サンプルは、標準 QuickWin ウィンドウの様相を大幅に変更するための Windows API の使い方を説明しています。
conapp:conapp サンプルは、QuickWin アプリケーションからコンソール・ウィンドウを作成する方法のデモです。サンプルは、2 つの部分で構成されています。コンソール・ウィンドウを生成し、I/O を行う DLL と、この DLL を呼び出す QuickWin プログラムです。DLL が装置番号 *, 5, 6 を使うコンソールを参照できるようにするために、このサンプルはその他の目的では推奨できない技術を使っています。DLL は Fortran Dynamic-Link Library とリンクされ、QuickWin アプリケーションは Fortran Static Library とリンクされています。一般的にこれは使うべきものではありません。それは、2 つの異なったライブラリーの使用は、主プログラムと DLL が I/O 装置を共有できないことを意味しているからです。
dirkeys:dirkeys サンプルは、矢印キーを QuickWin からユーザープログラムに渡す方法を説明しています。
dirkeys2:dirkeys2 サンプルは、キーボード・イベントに対して SetWindowsHookEx を使ったコールバック手続 (フック) の使い方を説明しています。このサンプルは、PASSDIRKEYS の制限の回避方法、特に INSERT, DELETE および CTRL-C キーのトラップ方法について説明しています。
dirkeys4:dirkeys4 サンプルは、PASSDIRKEYQQ ルーチンの使い方を説明しています。PASSDIRKEYSQQ ルーチンは、INSERT, DELETE および CTRL-C キーへのアクセスを簡単にします。
menudriv:menudriv サンプルは、QuickWin アプリケーションで利用できる 3 つのプログラミング技術を説明しています。様々な関数を制御するためのメニューの利用、EXIT での制御の入手、プログラムの進捗状況を示すステイタスバーの利用の 3 つです。
peekapp:peekapp サンプルは、文字単位で入力される入力を取り扱う peekchar と getchar を使った計算ループをシュミレーションするマルチスレッド・アプリケーションです。これは、QuickWin 内で使われるようになっています。
peekapp3:peekapp3 サンプルは、peekapp に似たマルチスレッド・アプリケーションですが、文字を読むスレッドでシャットダウンの命令を処理する手続が含まれています。
poker:poker サンプルは、QuickWin とウィンドウの簡単な制御の使い方を説明しています。このサンプルは、Windows インタフェースを管理するために QuickWin を使っていますが、Win32 API も使っています。そのため、これは dfwin.lib とリンクしなければなりません。poker サンプルをビルドすると、CARDS.F90 ファイルをコンパイルする時間が他のファイルよりも長くなることに注意してください。ビルドする前に、すべての依存関係が更新されていることに注意してください。
postmini:postmini サンプルは、グラフィカル・ポストプロセッシング・ソフトウェアで、プロセス数の出力、装置、およびサーキット状態 (TCAD) プログラムを検証するために使うことができ、ASCII ファイルからのデータの入力としても使えます。このパージョンの postmini は、グラフィカル・インタフェースとして QuickWin を使っています。
qwpaint:qwpaint サンプルは、QuickWin アプリケーションでのマウス・コールバックとグラフィックス・ルーチンの使い方を説明しています。このサンプルは、「control grid」と「canvas」の 2 つのウィンドウを表示します。QuickWin の組込み File.Save オプションを、ビットマップ・ファイル (.BMP) としてウィンドウの内容の保存に使用することができます。
qwpiano:qwpiano サンプルは、QuickWin アプリケーションでのマウス・コールバックとメニュー・コールバックの使い方を説明しています。これは、マウスで演奏ができるピアノの鍵盤を画面上にグラフィックスで描画します。2 つの互換性オプション、「Logical Values」と「Filenames from Command Line」が設定されていなければならないことに注意してください。前者が QuickWin ルーチンとの相互作用に影響を及ぼし、後者が「開く」要求に対する応答として「File」ダイアログボックスを表示させます。
Resize:resize サンプルは、QuickWin ウィンドウに表示される情報の正しい大きさを得るために QuickWin アプリケーションから Win32 API 呼び出しを使用する方法のデモです。
testscrl:testscrl サンプルは、スクロールバーを持つウィンドウの最後の行をスクロールする方法を説明しています。これは、スクロールバーを持たないウィンドウの作成方法も説明しています。
科学グラフ・ユーティリティ (SciGraph)
SciGraph は、科学グラフを描画するための Fortran ルーチンのパッケージです。グラフ形式には、折れ線グラフ、棒グラフ、XY グラフ、パイ・グラフがあります。すべてのグラフは、軸、対数縮尺、データ点、色と影、エラーバー、その他の科学グラフ様相の制御を含む完全なカスタマイズが可能です。すべてのグラフは、Visual Fortran の QuickWin グラフィックス・ルーチンを使って描画されるため、既存の QuickWin アプリケーションに簡単に追加することができます。SciGraph パッケージは、...\Df98\Samples\SciGraph にあります。
scigraph:SciGraph サンプルは、基本的なグラフ形式をサポートする科学グラフ・パッケージの開始点を提供します。このサンプルには、2 つのプロジェクトがあります。
- プロジェクト scigraph は、ライブラリーと .MOD ファイルを作成します。
- プロジェクト sgdemo は、基本的なグラフ形式を示すプログラムを作成します。
最初に scigraph をビルドし、次に sgdemo をビルドしてください。scigraph プロジェクトの出力領域は、.MOD ファイルを見つけられるパスとしてインクルードされていることに注意してください。SCIGRAPH ディレクトリに .WRI ファイルがあります。このファイルでは、様々な SciGraph ルーチンの基本的な引用方法やエラー一覧とその原因などが説明されています。SciGraph の既知の制限事項は、グラフィックス装置の 256 色の QuickWin 制限と直接関連しています。この制限は、ビットマップ・ファイルを印刷または保存しようとした時に現れ、黒い画面のみが印刷または保存されます。
チュートリアル (Tutorial)
すべてのチュートリアル・サンプルは、単純なプログラムで、多くは単独で動作します。各ファイルの上部にコマンド行と Developer Studio の両方に関するコンパイル方法についての説明があります。複数のファイルがある場合、このこともファイルの上部に記述されています。すべてのチュートリアル・サンプルは、ディレクトリ ...\Df98\Samples\Tutorial にあります。
assocn:assocn サンプルは、浮動小数点加算での非結合を説明しています。
cycle:cycle サンプルは、Fortran 90 文の CYCLE と EXIT を説明しています。
derived:derived サンプルは、構造型構造体、型変数、代入値を説明しています。
dtypearg:dtypearg サンプルは、構造型引数を渡すための SEQUENCE の使い方を説明しています。
dtypecom:dtypecom サンプルは、COMMON 宣言での構造型オブジェクトの位置について説明しています。
dtypemod:dtypemod サンプルは、構造型引数を渡すためのモジュールの使い方を説明しています。これは、構造型の WRITE 文での使用方法も説明しています。
epsilon:epsilon サンプルは、様々なマシン・イプシロンの計算を説明しています。
internal:internal サンプルは、内部サブルーチンと CONTAINTS 文の使い方を説明しています。
interval:interval サンプルは、丸め制御の使い方を説明しています。このサンプルは、最適化なしでコンパイルされなければなりません。
keynames:keynames サンプルは、モジュール内で定義された構造体とサブルーチンの使い方の Fortran 概念を説明しています。このサンプルのビルドには、NAME_SSN.F90 も必要です。
matherr:matherr サンプルは、実行時数学例外の処理方法を説明しています。このサンプルは、単独で動作するアプリケーションではないので、他のプログラムにインクルードして使ってください。
mathtest:mathtest サンプルは、組込み数学関数でのエラー条件への応答のために上述の matherr を使った例を示しています。これは、MATHERR.F90 の MATHERRQQ サブルーチンを使っています。
mbcomp:mbcomp サンプルは、National Language Support ルーチンの使い方を説明しています。
namelist:namelist サンプルは、NAMELIST 文の使い方を説明しています。
percent:percent サンプルは、ユーザー定義演算子について説明しています。このサンプルでは、浮動小数点をパーセントに変換する単項演算子を例として説明しています。
pointer:pointer サンプルは、ポインタと指示先を割り付けたり、割付けを解除したりする例を示しています。
pointer2:pointer2 サンプルは、ポインタや指示先をポイントする方法と ASSOCIATED 組込み関数の使い方を説明しています。
realg:realg サンプルは、グラフィックスの座業系について説明しています。このサンプルは、画面を表示するために QuickWin を使っています。
recurs:recurs サンプルは、再帰サブルーチンの非常に簡単な例を示しています。
showfont:showfont サンプルは、様々なフォントを表示するための QuickWin の使い方を示しています。このサンプルは、QuickWin の様々な関数の使い方も説明しています。
sigtest:sigtest サンプルは、ユーザー定義例外処理ハンドラの使い方を説明しています。これは、例外が発生した時に呼び出される関数として例外処理ハンドラの名前を確立する方法を示しています。
sine:sine サンプルは、正弦曲線と単純な形状を出力するための QuickWin の使い方を説明しています。
testget:testget サンプルは、REAL から CHARACTER に変換するための内部 READ の使い方を説明しています。これは、Developer Studio から実行しないでください。これは、df testget.f90 とすればビルドすることができます。
threads:threads サンプルは、QuickWin における複数のスレッドの使い方を説明しています。これは、Advanced\win32\bounce のサンプルよりもより簡単なプログラムですが、実行時にはあまり効果はありません。
unclear:unclear サンプルは、総称モジュール手続の使い方を説明しています。「dup」と呼ばれる総称モジュール手続は、3 つの分身を持っています。1 つは実数引数、1 つは整数引数、1 つは文字引数です。
where:where サンプルは、Fortran 90 構文 WHERE と ELSEWHERE の使い方を説明しています。
|