お客様が Compaq Visual Fortran (DIGITAL Visual Fortran) で問題に直面された時、Compaq に問題をご報告いただく前にこれらのよく寄せられる質問をお読みください。多くの場合、必要とされる情報が見つかるはずです。
検索可能な知識ベースもございます。エラー・メッセージや他の興味のある項目のキーワードで検索することができます。既知の問題も知識ベースにまとめられています。
以下の説明では、Visual Fortran を VF、Microsoft Fortran PowerStation 4.0 は FPS と略記します。新規または更新された部分には最後に更新された日付をつけています。
VF V5 は Microsoft Visual C++ 6.0/Visual Studio 6.0 と一緒に使えますか?VF V6 は Visual C++ 5.0/Visual Studio 97 と一緒に使えますか?
17-Jan-2000
VF V6.x は、MS Visual C/C++ 6.0 と開発環境を共有しますが、VF V5 は共有しません。逆に、VF V5 は、MS Visual C/C++ 5.0/Visual Studio 97 と開発環境を共有しますが、VF V6.x は共有しません。これら 2 バージョンは、単一システム上に共存することができ、古いバージョンのコンパイラーで作成されたオブジェクトやライブラリーは、新しいバージョンの開発環境で利用することができます。
【先頭に戻る】
FPS の<fill-in-the-blank>の問題は Visual Fortran で修正されていますか?
VF のコンパイラーと Fortran ライブラリーは、Compaq が 100% 独自に作成したもので、FPS には基づいていません。そのため、本質問はまったく意味がありません。VF は、Tru64 UNIX や OpenVMS Alpha で利用されている Compaq Fortran 90 コンパイラー(1994 年より出荷)に基づいております。VF は、Compaq Alpha システムの業界をリードする性能を十分に引出すことができる独自のGEM 最適化技術を使用する独自のフロント・エンドを使っております。
QuickWin ライブラリーと宣言の様々なモジュールは、Microsoft 社のコーディングに基づいています。Compaq では、QuickWin の様々な問題を修正してきておりますし、品質の向上を継続して図ってきております。
【先頭に戻る】
コンパイラーは、Athlon/Duron, Pentium Pro, Pentium II または Pentium III プロセッサーのための最適化機能を持っていますか?
20-Sep-2000
VF V6.5 は、AMD Athlon/Duron および Intel Pentium III プロセッサーのための最適化を含んでいます。VF V6.0, V6.1 は、Pentium Pro/Pentium II/Celeron プロセッサーのための最適化を含んでいます。
【先頭に戻る】
コンパイラーは、Intel Pentium 4 プロセッサーをサポートしていますか?
19-Jun-2001
VF は、Pentium 4 プロセッサーを完全にサポートしております。VF 6.5 でこのプロセッサー上で最高の性能を得るには、「Pentium II/Pro」の最適化設定を選択されることをお勧めします。VF 6.6 では、Pentium 4 に特化した最適化を提供しています。
【先頭に戻る】
VF は、Windows 2000 をサポートしていますか?
13-Sep-2000
V6.1A よりサポートしています。V6.1A では QuickWin のフォント選択に関連した問題を解決しています。これ以前のバージョンをインストールすることはできますが、正式にはサポートされておりません。
【先頭に戻る】
VF は、Windows Millennium Edition (Windows ME) をサポートしていますか?
19-Jun-2001
VF 6.1 以降でサポートしています。重要な情報がありますので、知識ベースの記事 Q1038 を参照してください。
【先頭に戻る】
VF は、Windows NT/2000 Terminal Server をサポートしていますか?
20-Sep-2000
Compaq では、Terminal Server で限定したテストを行い、この環境で VF を利用する上での問題点はありませんでした。VF ラインセンスが各ユーザー毎に必要になることに注意してください。このトピックの付加情報については、知識ベースの記事 Q1037 を参照してください。
【先頭に戻る】
VF は Windows XP をサポートしていますか?
22-Nov-2001
VF 6.6 からサポートしています。
【先頭に戻る】
VF は、Windows NT/2000 で動作するマルチプロセッサー・システムが利用できるようなアプリケーションを生成する機能を持っていますか?
19-Jun-2001
VF は、Win32 マルチスレッドや同期 API を使用したマルチスレッド・アプリケーションを完全にサポートします。マルチスレッド・アプリケーションは、マルチプロセッサー・システムの利点を自然に利用します。しかしながら、コンパイラーやライブラリーそれ自身は複数プロセッサーを利用しません。
マルチプロセス・アプリケーションを作成するために使用できる製品の情報に関しては、関連製品を参照してください。
【先頭に戻る】
VF は、DOS や Windows 3.x で動作するアプリケーションを作成できますか?
できません。FPS と同様に VF は Win32 用実行形式ファイルのみを作成します。
【先頭に戻る】
DOS extender や Win32s はどうですか?
Win32s サブセットや DOS extender がサポートする Win32 サブセットへのライブラリー呼び出しは試みていません。さらに、Win32s や DOS extender とのテストも実施していません。
【先頭に戻る】
VF で作成した実行形式ファイルを Windows NT 3.5x で実行できますか?
できます。そのバージョンでサポートされない API を使用しない限り実行できます。開発ツールは、Windows NT 4.0/2000 (または Windows 9x) を必要とします。
【先頭に戻る】
VF コードと FPS コードを混在して使うことができますか?
12-Aug-1997
もし FPS コードが計算のみのコード (つまり、FPS の入出力ライブラリーを呼び出していない) であれば、一般に答えは「はい」です。FPS ライブラリーを呼び出すように書かれた FPS コードは、VF コードとスタティック・リンクされた実行形式ファイルや DLL 形式ファイルと結合することはできません。これは、Fortran ライブラリーに互換性がないためです。FPS コードを別の DLL としてビルドし、それを VF コードとリンクすることはできますが、2 つの Fortran ライブラリーが呼び合うことはできません。
FPS で提供された IMSL ライブラリーを VF で使用することはできません。VF プロフェッショナル版は新しいバージョンの IMSL ライブラリーを提供します。
【先頭に戻る】
VF 6 コードと MSVC V5 コードを混在して使うことができますか?
02-Oct-1998
できます。MSVC V5 Developer Studio の環境を使って VF 6 コードをコンパイルすることはできませし、この逆もできません。しかし、オブジェクト・ファイルやライブラリーが別個に作成されていれば、それらをリンクすることはできます。この時、VF が提供する新しいコマンド行ツール (リンカー、ライブラリーアンなど) を使う必要があります。
【先頭に戻る】
VF のあるバージョンでそれよりも古い VF のバージョンでコンパイルしたモジュール、ライブラリー、または DLL を使用することができますか?
19-Oct-2000
できます。しかしながら、下位互換性がサポートされていないため、逆はできません。
【先頭に戻る】
OpenVMS からアプリケーションの移行を考えています。VF は索引ファイル、OpenVMS システム・サービス、実行時ライブラリーをサポートしていますか?
05-Jun-2000
サポートしていません。それは、OpenVMS オペレーティング・システムの機能が、Windows 9x や Windows NT/2000 で提供されていないためです。そのような機能を提供する OpenVMS エミュレーション・ライブラリーを提供する会社があります。たとえば、Sector 7 社や Accelr8 社です。
【先頭に戻る】
VF は 4 倍精度 (REAL*16) の浮動小数点をサポートしていますか?
17-Sep-1997
サポートしていません。しかしながら、Alan Miller が書いた 4 倍精度機能を提供するソフトウェア・パッケージが VF で動作します。
【先頭に戻る】
VF は、MS Access, Excel, Oracle, FoxPro, SQL や他の ODBC データベースのようなデータベース中のデータへのアクセスをサポートしていますか?
19-Oct-2000
Canaima Software 社の f90SQL ライブラリーが、この機能を提供しています。f90SQL のフリーウェア・バージョンが CVF 6.5 の関連製品 CD-ROM で提供されています。
【先頭に戻る】
VF をアップグレードすると、前のバージョンのシリアル番号の入力でエラーになります。
4-Dec-2000
VF 6.0 から 6.1 にアップグレードする時、6.0 が 5.0 からのアップグレードであった場合、6.0 のシリアル番号を入力するとエラーが発生します。アップグレード・ラインセンスではないシリアル番号を入力してください。
【先頭に戻る】
VF をインストールすると「Not Enough Space for Environment」のエラーが表示される。
21-Sep-2001
VF をインストール中に、「環境変数を登録する」を選択した場合、DFVARS.BAT が Windows 9x/ME システムでは、AUTOEXEC.BAT に書き込まれ、起動時に VF 用の環境変数が登録されます。お使いのシステムによっては、この環境変数の容量が小さいか様々な環境変数が登録されていて残り少なくなっているために、上述のようなエラーが発生する場合があります。この場合には、AUTOEXEC.BAT をメモ帳で開き、以下の行を削除してください。
CALL C:\PROGRA~1\MICROS~1\DF98\BIN\DFVARS.BAT AUTOEXEC
修正後、システムを再起動してください。
プログラムをビルドされる場合、「Fortran Comand Prompt」または「Developer Studio」を使ってビルドしてください。これらを使う場合、上述の環境変数を定義する必要がありません。
【先頭に戻る】
VF 6.0 をインストール中に、ファイルをコピーしようとした時システムが動作しなくなります。
19-Oct-2000
この問題は、極一部のシステムで発生しています。ビデオ・ドライバが混乱しているために発生します。回避方法は、ビデオ・ディスプレイの設定で色深さ (色数) を 16 ビット (65536 か 64K 色) かそれ以下に一時的に減少させ、インストールします。インストレーション完了後、色数を元の値に戻します。インストレーション後、色深さを元の値に戻します。この問題は、このバージョン以降では発生しません。
【先頭に戻る】
VF をサーバーから実行できるようにインストールすることができますか?
23-Jul-1998
VF のサーバー・インストレーションを実行するには、CD-ROM の内容をサーバーにコピーします。各クライアント PC から、サーバーにコピーした SETUP.EXE プログラムを実行し、「run from CD」インストレーション・タイプを指定します。いくつかのファイルは、クライアント PC にコピーされますが、多くはサーバー上に残されます。VF 製品にアクセスするためには、各クライアント PC に個別のライセンスが必要であることに注意してください。
【先頭に戻る】
AutoPlay を利用してインストールするか、キットのルート・ディレクトリで SETUP.EXE を実行するとエラーになります。
このような場合には、\X86\SETUP.EXE と指定して実行してください。
【先頭に戻る】
インストールで 91% (または 96%) まで実行したところで失敗します。
19-Oct-2000
Administrator のアカウントでインストールを実行していることを確認してください (Windows NT/2000 のみ)。また、次の方法を実行してみてください。
- 「x86\setup -fdebug.ins」を実行してインストールしてください。これにより、インストレーション・スクリプトのデバッグ・バージョンを使用します。エラーが発生した場所で、「Function on line nnn returned status = nnn」というメッセージが表示されます。メッセージを無視して、インストレーションを継続してください。VF のプログラム・フォルダを手動で設定する必要があります。
- REGEDIT.EXE を実行し、キー「HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell」のデータ値を確認してください (Windows 95 の場合は、Windows\System.ini ファイルの [Boot] セクションの Shell= の行を確認してください)。この値が「explorer.exe」でなければ (システムによっては「explorer.exe userhook.exe」となっているかもしれません)、現在の値をメモした後、「explorer.exe」に変更し、REGEDIT.EXE を終了して、システムをリブートした上で、再度インストールしてみてください。既に上述の -fdebug.ins を指定してインストールしていれば、VF をアンインストールした上で再インストールしてください。また、インストレーションが成功した場合、再度 REGEDIT.EXE を実行し、元のデータ値に戻しておく必要があります。
【先頭に戻る】
SETUP を実行すると、何もインストールせずただちに終了します。
この場合は、Microsoft Internet Explorer をアンストールした後、SETUP を実行してください。
【先頭に戻る】
インストールしようとすると、「This kit does not support the currently running Operating System or Hardware.」のエラーが表示されます。
8-Mar-1999
Intel システムに Alpha 用プロフェッショナル版 CD-ROM をインストールしようとしているか、その逆です。Intel と Alpha 用に別々の CD-ROM があります。(Array Visualizer は、1 枚の CD-ROM で両方のプラットフォームをサポートしてます。)
【先頭に戻る】
Alpha システムにプロフェッショナル版をインストールすると、「C:\wnt\system32\*.* is readonly」というエラーが表示されます。
29-Oct-1997
FX!32 を停止してからインストールし、FX!32 を再起動してください (詳細は VF ReadMe を参照してください)。この問題は、FX!32 V1.1 でのみ発生します。FX!32 V1.2 で修正されています。
【先頭に戻る】
「Typical」インストールを行うと何が提供されますか?「Custom」の場合はどうですか?
19-Oct-2000
「Typical」インストールを行うと、以下のものが提供されます。
- コンパイラー、ビルド・ツール、ライブラリー
- Developer Studio
- IMSL (プロフェッショナル版のみ)
- Visual Fortran、Developer Studio および Win32 SDK のオンライン・ドキュメント
- 補助ツール (Profiler、Process Viewer、WinDiff、Windows と OLE ツール)。注意:最初の V5.0 リリースでは、このカテゴリは「Typical」インストールでは選択されていませんでした。
「Custom」インストールは「Typical」として開始します。基本設定で選択されているカテゴリ (とその構成要素) を非選択にすることもできますし、以下のものを追加することもできます。
- CXML (V6.1 以降)
- サンプル・プログラム
「Typical」インストールでは、サンプル・プログラムはインストールされないことに注意してください。必要があれば、CD-ROM から個別にコピーしてお使いください。
【先頭に戻る】
Microsoft Internet Explorer の代わりに Netscape Navigator を使用して VF をインストールできますか?
29-Oct-1997
Microsoft Developer Studio は、HTMLHelp Viewer の機能を提供するために Microsoft Internet Explorer の構成要素を使用します。他のブラウザとの組み合わせでインストールすることはできません。もちろん、ウェブ・ブラウザとして使用する場合には、MSIE である必要はありません。
【先頭に戻る】
Developer Studio に慣れていません。どのようにしたら作業が開始できるかがわかりません。助けてください!
19-Oct-2000
印刷版マニュアル『Compaq Visual Fortran Installing and Getting Started』をお読みください。初めてご利用になる場合の入門編が用意されています。VF チュートリアルを実行してより詳しい入門編を参考にしてください (この印刷版マニュアルに説明があります)。基本的なヒントを以下に示します。
- Visual Fortran プログラム・フォルダから Developer Studio を起動します。
- 「File」メニューから「New」を選択します。表示された画面では、「Project」タブが選択されています。適切なプロジェクト・タイプ (何を選択してよいかわからなければ、「Fortran Console Application」を使用) を選択します。「Project name」にプロジェクト名を入力し、「Location」にプロジェクトを置いておく適切なディレクトリを入力します。「OK」をクリックします。空のプロジェクト (ソース・ファイルなし)、簡単なプロジェクト (何もしないプログラム)、または「Hellow World」プロジェクト (「Hellow World」と画面に出力するプログラム) のどれを作成するかという問い合わせがあります。適切なものを選択し、「Finish」をクリックします。
- Developer Studio の左ペインで「FileView」タブをクリックし、「Source Files」の左のプラス記号をクリックします。これは、プロジェクトに登録されているファイルを一覧表示します。エディタで開きたいファイルをダブルクリックします。
- プロジェクトに既存のファイルを登録するには、「Project」メニューから「Add To Project」の「File」を選択します。表示される画面で登録したいソース・ファイルを選択します。
- プロジェクトに新しいファイルを登録するには、「Project」メニューから「Add To Project」の「New」を選択します。表示される画面で「Fortran Fixed Format Source File」(Fortran 固定形式ソース) か「Fortran Free Format Source File」(Fortran 自由形式ソース) のどちらかを選択し、ファイル名を入力します。ファイル拡張子 (指定されていなければ) は自動的に追加されます。
- プロジェクトの別なファイルを編集するには、「FileView」に表示されている編集したいファイル名をダブルクリックします。
- ビルドするには、「Build」ボタン
または F7 キーを押します。
- プログラムを実行するには、「Execute」ボタン
または CTRL/F5 キー (CTRL キーを押したまま F5 キー) を押します。
「Debug」と「Release」構成の切り替え方法、デバッガーの使い方などの詳細な情報は、上述の印刷版マニュアルかオンライン・ドキュメントの「Programmer's Guide」を参照してください。オンライン・ドキュメントの参照方についても、上述の印刷版マニュアルを参照してください。
【先頭に戻る】
プロジェクト・タイプの違いは何ですか?
知識ベースの記事 Q1002 を参照してください。
【先頭に戻る】
どのようにして既存のプロジェクト・タイプを変更することができますか?
各プロジェクト・タイプは、多数の基本設定のスイッチやライブラリーの設定を行っています。そのため、プロジェクト・タイプを変更する最も簡単な方法は、正しいタイプの新規プロジェクトを作成し、それにソース・ファイルを加えることです。
【先頭に戻る】
どのようにしたら Developer Studio をより使い易くできますか?
Developer Studio は、多様なカスタマイズが可能ですが、基本設定は必ずしもユーザーの希望に合致していないかもしれません。特に、幾つかの典型的な機能はツールバーのボタンとして表示されず、メニュー中に隠れています。ここでは、幾つかの便利なボタンの追加方法を説明します。カスタマイズするためには、「Tools」メニューから「Customize」を選択します。
- 「Commands」タブからカテゴリ「Files」を選択します。白紙のページのよに見えるボタン (通常一番左にある) は「新規ドキュメントの作成」のボタンです。これは「File」メニューから「New」を選択するのと同じです。これをツールバーの適当な場所にドラッグしてください。
- カテゴリ「Edit」を選択し、赤の X 記号 (「Edit」メニューから「Delete」を選択するのと同じ) をツールバーにドラッグしてください。
- 「Toolbars」のタブに進んで、「Build」ボックスをクリックしてください。表示される「Build」ツールばーを適切な場所にドラッグして、ドロップします。「Build MiniBar」ボックスをクリックして、チェックを取り除きます。
【先頭に戻る】
Microsoft は、Service Pack 5 for Visual Studio 98 と関連製品をリリースしました。VF 6 を使っている場合、これをインストールすべきでしょうか?
19-Jun-2001
VF 6.1 をご利用の場合、これは Microsoft Visual Studio 98 Service Pack 3 からの共有構成要素を含んでいます。Microsoft Visual Studio 製品 (Visual C/C++, Visual BASIC) をインストールしていない場合、Microsoft から VS98 SP4 または SP5 を個別にインストールすることはできません。Microsoft Visual Studio 製品を所有し、VS98 SP5 をインストールしたい場合、Microsoft が VS98 SP4 (および SP5) で行った変更の非互換部分を回避する VF SP4FIX もまたインストールしなければなりません。詳細は、知識ベースの記事 Q1036 を参照してください。
【先頭に戻る】
Microsoft は、Service Pack 3 for Visual Studio 97 と関連製品をリリースしました。VF 5 を使っている場合、これをインストールすべきでしょうか?
18-Nov-1998
Compaq では、Service Pack 1, 2 をテストし、VF ユーザーに影響のある Developer Studio のいくつかの問題が解決されていることを確認しました。Service Pack 1, 2 を含む Service Pack 3(SP3) は、Developer Studio でワークスペースを開く時に、システムのクラッシュに直面しているユーザーにインストールをお勧めします。しかし、VF だけがインストールされていて、他の Visual Studio ツールがインストールされていないシステムでは、SP3 をインストールできません。
注意:Visual Studio 97 の Service Packs は VF 6 に適用されません。Visual Studio 98 Service Pack 1("core") は、必要であれば VF 6 に適用することができます。
VF のみがインストールされているシステムに SP3 をインストールするには、次のステップに従ってください。
- ファイル「...\VC\Bin\Lib.exe」を「...\VC\Lib.exe」へコピーし、「...\VC\VCremove.exe」と名前を変更します。
- Service Pack の Setup.exe を実行します。Setup はマイクロソフトの Visual C++ を検出し、更新する旨のメッセージを表示します。これはインストール可能を示します。
- インストールを完了したら、「...\VC\VCremove.exe」を削除してください。
【先頭に戻る】
Developer Studio で FPS のプロジェクトをオープンし、それを変換しようとした時、MSDEV のエラーとなります(Application Error, illegal operation, invalid page fault)。
25-Aug-1997
Microsoft Visual Studio Service Pack 3 をインストールしてください。より詳細な情報は、Microsoft の知識ベースの記事 Q166285 と前記の SP3 に関する質問を見てください。
【先頭に戻る】
どのようにしたら Developer Studio から Profiler を使用できますか?
29-Oct-1997
Developer Studio で「Build」メニューから「Profile...」を選択し、指示に従ってください。もし、メニューの「Profile...」が灰色になっている場合、Profiler がインストールされていません。この場合、再インストールを実行し、「Supplemental Tools」のカテゴリから「Profiler」を選択してください。V6 をお使いの場合、知識ベースの記事 Q1024 を参照してください。
【先頭に戻る】
Developer Studio でビルドする時、コンパイル、リンクで黒いスクリーンが現れます。
19-Nov-1997
これは、コマンド・プロンプトに対する基本設定をフル・スクリーンにしたために起こります。これを解決するためには、Microsoft の知識ベース Q126031 を参照してください。
【先頭に戻る】
アプリケーションをビルドした時、Developer Studio がインクルード・ファイルを個別にコンパイルしようとしてエラーが発生します。
28-Feb-1998
インクルード・ファイルが、.f, .for, .f90 の拡張子を持っており、プロジェクトのソース・ファイルとしてインクルード・ファイルを追加した時に発生します。Developer Studio は、それらを個別のコンパイルするべきソースと認識し、コンパイルしようとします。
これを解決するには、インクルード・ファイルをプロジェクトから削除します。削除するファイルを選択し、「Delete」キーを押します。Developer Studio は、そのファイルを「External Dependencies」の下に置きます。その他の解決方法は、別の拡張子 (たとえば、.inc, .fi) にそのファイルを変更することです。
【先頭に戻る】
構文が色で表示されたソース画面をカラーで印字できますか?
20-Sep-2000
VF 6.1 より Developer Studio の「File」メニューに「Print Colorized Fortran」項目を追加しました。詳細は、ニュースレター Issue V の記事「Seeing Red?」を参照してください。
【先頭に戻る】
Developer Studio でコンパイルした時、警告がたくさん出力されます。
Developer Studio でコンパイルし、実行した時、Array Bounds Exceeded のエラーが出力される
期待下ほどの性能が出ません。
4-Oct-2000
Developer Studio でコンパイルする場合、コンパイル方法には Debug, Release の 2 種類があります。プロジェクトを作成した時、基本設定では Debug でビルドされるようになっております。Debug ではすべての警告を出すように設定されており、また、最適化をまったく行いません。そのため、警告がたくさん出たり、期待したような実行速度が得られません。Release でビルドするようにしてください。以下のようにします。
- Tools メニューバーから Customize を選択します。Customize ダイアログボックスが表示されます。
- Toolbars タブをクリックします。Toolbar を選択する画面に変ります。
- Toolbars のラベルの下にあるチェックボックスがついた一覧から Build Minibar のチェックボックスをクリックし、チェックを取り除きます。
- Build チェックボックスをクリックして、チェックを入れます。Build ツールバーが画面に表示されます。
- Close をクリックして、このダイアログボックスを閉じます。
- 画面上に表示されている Build ツールバーをクリックしたまま上方に移動させ、既に表示されているツールバーの下に持ってきます。そして、クリックを止めます。これで、Build ツールバーが他のツールバーとドッキングします。
- Build ツールバーの左側にプロジェクト名、その横に現在のビルド形式(Release, Debug)が表示されます。このビルド形式を変更することにより、好みのビルドが行えるようになります。
【先頭に戻る】
Developer Studio からコンパイルした時、「error spawning df.exe」というメッセージが表示されます。
18-Nov-1998
VF をインストールしたユーザーとは異なる Windows NT ユーザーに対してこの現象が発生します。V6 では、スタート -> プログラム -> Compaq Visual Fortran 6 -> Per-User Setup (Getting Started に記述) を実行してください。V5 では、REGUSER ツールをダウンロードしてください。
【先頭に戻る】
コンパイルした時、「no compile tool is associated with the file extension」というエラーが表示されます。
これは、通常誤って「Makefile」プロジェクト・タイプを選択したことを意味します。この場合、このプロジェクトを削除 (プロジェクトをクローズし、プロジェクトのディレクトリを削除) し、正しいプロジェクト・タイプを新しく作成してください。詳細については、前記のプロジェクト・タイプを参照してください。
【先頭に戻る】
「info: some interprocedural optimizations may be disabled when compiling in this mode」というメッセージは何を意味しますか? どうしたらこのメッセージを取り除くことができますか?
12-Aug-1997
VF は、呼び出すルーチンと呼び出されるルーチンが同じコンパイル処理内にあれば、ルーチン間にまたがった最適化とインライン展開をすることができます。Developer Studio でコンパイルする場合、または、コマンドラインで複数のソース・ファイルがあっても、/obj: が指定されている場合、コンパイラーは最高の最適化ができないことを示す情報メッセージを出します。
V5.0A では、/warn:nofileopt を指定するか、「Project」メニューから「Settings」を選択し、表示される画面で「Fortran」タブをクリックし、「Miscellaneous」カテゴリを選択し、「Warnings」の「Interprocedure Optimization」のチェックボックスをクリックしてチェックを取り除きます。これにより、このメッセージを削除することができます。
【先頭に戻る】
コンパイルした時、「df:: couldn't start file system ...","Error executing df.exe」というエラーが表示されます。
14-Aug-1997
これは MKS Unix toolkit をインストールしている場合に起こる可能性があります。このツールは DF.EXE と呼ばれるディスク・スペースを開放するのためのプログラムを持っており、Developer Studio は、Compaq Fortran コンパイラーと誤ってこれを見つけてしまいます。通常は、Developer Studio のためのディレクトリ・パスとして PATH ディレクトリの前に VF ディレクトリを置くので、このようなことは起こりません。これを修正するには、「Tools」メニューから「Options」を選択し、表示される画面の「Directories...」タブを選択し、「Executable Files」を選択します。そして、...\DF\BIN ディレクトリが他の Developer Studio 以外のディレクトリよりも前に置かれていることを確認します。もし必要ならば、\DF\BIN を選択し、上向き矢印ボタンを使用して一覧の上方に移動します。
【先頭に戻る】
「the alignment of object is inconsistent with its type」という警告メッセージはどういう意味ですか?
19-Nov-1997
このメッセージは、COMMON 文または EQUIVALENCE 文により、変数をその大きさの整数倍のアドレスとは異なるところに強制的に配置したことを知らせます。たとえば、COMMON ブロックで INTEGER に続いて REAL*8 を宣言すると、REAL*8 は 4 の倍数のアドレスに配置されますが、8 の倍数アドレスに配置した方が性能が向上します。より詳細な内容については、オンライン・ドキュメントの「Programmer's Guide」の「Data Alignment Considerations」を参照してください。
【先頭に戻る】
リンクすると「unresolved symbol _WinMain@16」のエラーが表示されます。
最も一般的なケースは、伝統的な Fortran プログラムの代わりに、プロジェクト・タイプに誤って「Win32 Application」を選択した場合です。この場合は、「Win32 Console Application」(または「QuickWin Application」) を使用してください。詳細については、プロジェクト・タイプについての質問を参照してください。
【先頭に戻る】
リンクすると、ルーチンがあるにもかかわらず未定義のエラーとなります。
30-Jan-1998
基本設定では、ルーチンの外部名は実引数の数に依存した名前を付けます。もし、ルーチンが異なる数の引数を持っていたり、引数のデータ型が異なっていたりすると、リンカーはルーチンを見つけることができません。
【先頭に戻る】
リンクした時、「dformt.lib (matherr.obj) : error LNK2005: __matherr already defined in LIBCMT.lib (matherr.obj)」(2 番目のライブラリー名は変化する場合があります) というエラーでリンカーが終了します。
19-Jun-2001
Fortran 実行時ライブラリーには、_matterr の再定義が含まれています。これにより、math ライブラリーの組込みルーチンを実行する時に発生する例外を処理することができるようになっています。C では、_matherr が再定義されていないと、C ライブラリーは基本的には何もしない基本 _matherr の定義を使用します。アプリケーションをリンクする時、シンボル _matherr に関して「multiply defined symbol」というエラーをリンカーが生成することがあります。これは、リンカーがアプリケーションのシンボルを解決しようとする順番と _matherr シンボルを解決しようとした時の最後に検索したライブラリーに依存します。シンボル xxx は、libc で解決され、リストの次のシンボルが _matherr であったとすると、リンカーは _matherr を解決するために libc を最初に参照し、Fortran の再定義が得られず、リンカーのエラーが発生します。Fortran ライブラリーのモジュール matherr.obj には参照する他のシンボルも含まれているため、エラーが発生します。それが参照された時、リンカーは _matherr の他の定義を参照し、エラーを発生します。
この問題を回避するには、Fortran ライブラリーが C ライブラリーよりも前に指定されていることを確認します。Developer Studio では、「Project」メニューから「Settings...」を選択し、「Link」タブをクリックします。表示される画面で、「Object/Library Modules」フィールドに示されているリストの先頭に「dfor.lib」(またはマルチスレッド・ライブラリーを選択した場合は「dformt.lib」) を入力します。
【先頭に戻る】
リンクした時、oldnames.lib が見つからないというエラーが表示されます。
27-Feb-1998
Microsoft Visual C は、oldnames.lib という名前のライブラリーを配布し、strcpy() などのような ANSI 標準ではない名前を使うことを可能にしています。VF の最初のリリースでは、中身のない oldnames.lib を CD-ROM に入れていましたが、MS が提供するバージョンにある定義を必要とするユーザーには対応できていませんでした。そこで、キットからこのライブラリーを削除しました。
Visual C 製品を使わずに、oldnames.lib を参照する唯一の場合は、このライブラリーを参照する以前にコンパイルされた C のオブジェクト・コード (たとえ、そのエントリ・ポイントが使われていなくても) をプロジェクトが含む場合です。この問題を解決するには、ANSI に準拠した関数を使用するように C コードを編集し、再コンパイルすることです。空のライブラリーでもいい場合には、1 つの「Static Library Project」を作成し、ダミーのサブルーチンを 1 つ加えてビルドし、できたライブラリーを oldnames.lib と名前を変更し、問題の起きたプロジェクトに加えてください。
【先頭に戻る】
Win32 API ルーチンが定義されているライブラリーを見つける方法を教えてください?
27-Feb-1998
InfoViewer で対象の API ルーチン名を検索し、QuickInfo ボタンを押します。ライブラリー名が表示されます。そして、「Project」メニューの「Settings」を選択し、表示される画面で「Link」をクリックし、「General」カテゴリを選択して、そのライブラリーを追加してください。
【先頭に戻る】
実行形式ファイルの大きさが 256 MB を超えるという警告がリンク時に表示されます。
8-Jun-1998
知識ベースの記事 Q1019 を参照してください。
【先頭に戻る】
VF のスタティック・ライブラリーとリンクされた VF の DLL をビルドすることはできますか?
29-Oct-1997
これは、アプリケーションのエラーの解析を難しくするのでお薦めできません。DLL をビルドする場合は共有ライブラリーとリンクすることをお薦めします。付加的な情報として、VF アプリケーションの配布も参照してください。
【先頭に戻る】
「step into」でデバッグ・セッションを開始する時、デバッガーは機械語コードからスタートし、自分のコードからスタートしません。
VF は、適切な初期化処理を行うために実行時ライブラリーからスタートします。デバッグ・セッションをスタートするためには、主プログラムの最初の行にブレークポイントを設定してください。(このブレークポイントはセッションを超えて有効です。) そして、「Go」ボタンを使用して (または「F5」キーを使用して) デバッグ・セッションを開始してください。
【先頭に戻る】
デバッガーのもとで、プログラムを再スタートさせる時、crt0.c に対するソースのパスの入力を要求するダイアログボックスが表示されます。
12-Aug-1997
これは、VF がデバッグ・バージョンの C の実行時ライブラリーとリンクしていること起因します。「Cancel」をクリックしてボックスを削除します。そして、「restart execution」に進みます。 (上記に示したブレークポントを設定していると仮定しています。)
5.0A では、基本設定ではデバッグ・ライブラリーとはリンクされません。詳細についてはリリースノートを参照してください。
【先頭に戻る】
デバッガーで配列境界や算術計算のエラーが発生した場合、どのようにしたらプログラムを停止することができますか?
22-Sep-98
VF の実行時ライブラリーは、これらのエラーを捕まえ、メッセージを出して終了する例外ハンドラを持っています。デバッガーが、例外ハンドラに代わってこれらのエラーを捕まえるためには、デバッグ・セッションに入り、「Debug」メニューから「Exceptions...」を選択します。表示される画面で、関係のある例外に「Stop Always」をマークします。
I/O エラーに関しては、V5.0B から新機能が追加されました。デバッガーが捕まえることができるエラーを強制的に実行時ライブラリーが発行するように設定できる機能です。詳しくは、リリース・ノートを参照してください。
VF V6 では、Windows 98 (95 ではない) や Windows NT を使っている場合、デバッガーでエラーが発生した場所でプログラムを自動的に停止することができます。
【先頭に戻る】
デバッグをする時、共通ブロック、記録構造体、または構造型にある配列を調べることができません。
25-March-1998
これは、VF をインストールした後に Microsoft Visual C++, Visual J++, Visual Studio 97 をインストールすると起こります。これらの製品が、VF がデバッガーで Fortran 構文を解釈するために使用する Developer Studio の共有要素を置き換えるために発生します。これを修正するには、Visual Fortran プログラム・フォルダから「Per-user Setup」(V6) または「Repair #1」(V5) を実行します。他の MS ツールをインストールしていないユーザーでもたまにこの問題が発生するというレポートを受け取っています。
Microsoft 製品をインストールした場合、「Per-user Setup」を実行する前に少なくとも 1 回は Developer Studio を実行しなければならないことに注意してください。
Windows NT ユーザーは、REGUSERユーティリティを実行して、レジストリを正しく設定する必要がある場合があります。
【先頭に戻る】
デバッガーで大きさ引継ぎ配列 (最後の次元が * または 1) をどのようにしたら調べることができますか?
8-Dec-1997
これは、V5.0Bで解決されています。
【先頭に戻る】
デバッガーで大域モジュール変数を見ることができません。
6-Jul-2000
モジュールを使用するルーチンから、またはモジュール内に含まれるルーチンから、モジュール変数を見るには、「Watch」ウィンドウで「<module-name>::<variable-name>」を指定します。たとえば、モジュール FOO で定義されている変数 BAR をみたい場合、「Watch」ウィンドウで「FOO::BAR」を指定します。
【先頭に戻る】
デバッガーを起動した時、「MSDEV.EXE (or DFDEV.EXE) - Application Error The instruction at "0xnnnnnnnn" referenced memory at"0xnnnnnnnn". The memory could not be read.」というエラーが表示されます。
8-Mar-1999
プロジェクト・フォルダにあるすべての .OPT ファイルを削除して、再びデバッガーを起動してください。.OPT ファイルが再作成され、この問題は発生しません。
【先頭に戻る】
DLL 中で共通ブロックを使用しています。デバッグを行う時、DLL から共通ブロックの変数値を見ることができません。
13-Jul-1999
DLL 中の共通ブロックのメンバーを参照するには、「Watch」ウィンドウで共通ブロック名をタイプします。個々の変数値を参照できるようにエントリを「拡張」します。
【先頭に戻る】
VF がインストールされていないシステムで Fortran DLL を実行した時、「file not found」のエラーが表示されます。
02-Oct-1998
知識ベースの記事 Q1023 を参照してください。
【先頭に戻る】
VF で作成したアプリケーションを無償で VF のインストールされていないシステムに配布することができますか?
28-May-1999
配布できます。アプリケーションが、VF の DLL とリンクされている場合、その DLL も無償で配布することができます。通常、DFORRT.DLL またはマルチスレッド・アプリケーションの場合は、DFORMD.DLL が必要となります。また、MSVCRT.DLL を配布する必要がある場合もあります。QuickWin アプリケーションは、FQWIN.HLP ファイルを配布する必要がある場合があります。ただし、これらのファイルは Windows のシステム・ディレクトリに見つかる場合もあります。
実行時用の再配布ファイルを提供する実行時再配布キットを用意しています。
【先頭に戻る】
VF のエラー・メッセージにトレースバック情報を含めるにはどのようにしたらいいですか?
18-Nov-1998
VF V5 はトレースバック機能を提供していませんが、V6 は提供しています。Developer Studio で、「Project」メニューから「Settings」を選択し、表示される画面で「Fortran」タブをクリックし、「Run Time」カテゴリを選択し、「Generate Traceback Information」を選択します。さらに、「Link」タブで「General」カテゴリを選択し、「Incremental Linking」が無効になっていることを確認してください。コマンド行では、/traceback を指定します。
【先頭に戻る】
「forrtl: severe: Program Exception - stack overflow」というエラーが発生します。
05-Jun-2000
多くの種類の変数や式は、スタックに割り当てられます。配列についての組込み関数や式を使用した場合、もともとの変数が静的あるいは動的に割り当てられていたとしても、多くの一時的な情報がスタックに割り当てられます。基本スタックの大きさは 1MB です。リンカーのオプション
/stack:n
でこれを増加させることができます。n はスタックに必要なバイト数 (10 進) です。Developer Studio では、「Project」メニューから「Settings」を選択し、表示される画面で「Link」タブ選択し、「Project Options」の一覧にそのオプションを追加します。このスイッチは、 DF コマンド行でも指定できます。この方法は、他のプログラム (たとえば Visual Basic) から呼び出される DLL に提供できないことに注意してください。
すでにリンクされた実行プログラムに対して、コマンド
editbin /stack:n program.exe
により、そのスタックの大きさを変更することができます。Fortran DLL を呼び出すために Visual Basic を使用している場合、VB でコンパイルした実行形式ファイル (「Make EXE...」) に editbin を使うことができます。
【先頭に戻る】
装置番号 6 でファイルを開いた場合、装置番号 * に対して出力すると (TYPE、PRINT や装置番号指定のない WRITE)、コンソールに出力せず装置番号 6 に出力します。
22-Sep-1998
VF V5 では、装置番号 6 はコンソール出力に割り当て済みであり、すべてのコンソール出力はこの装置番号に出力されます。同様に装置番号 5 は コンソール入力に割り当て済みです。コンソール以外のファイルに対しては 5 と 6 以外の装置番号を使用してください。
VF V6 では、このリンケージは取り除かれました。装置番号 * に影響することなく独立して装置番号 5 と 6 を開くことができます。
【先頭に戻る】
どのようにしたら Windows NT で ANSI コントロール・シーケンスを有効にできますか?
18-Nov-1998
Windows 95 とは異なり、Windows NT は ANSI.SYS によって 32 ビット・コンソール・アプリケーションで ANSI のエスケープ・シーケンスを有効にすることはできません。Windows NT は、16 ビットの DOS アプリケーションに対してのみ ANSI.SYS をサポートします。
Sector 7は、コンソール・アプリケーション用に VT220 エミュレーションを提供する DLL を提供しています。詳しくは、この会社にお尋ねください。
【先頭に戻る】
タブで始まるソース行は正しく認識されない場合があります。
12-Aug-1997
FPS のタブ・ソース形式は、VF の形式とは異なっています。FPS では、タブに続く文字がアルファベット、下線、感嘆符、空白、タブのいずれかであった場合、最初のタブは 6 個の空白で置き換えられます。それ以外の場合は、最初のタブは 5 個の空白と継続標識文字に置き換えられます。Compaq Fortran コンパイラーのタブ・ソース形式はタブに続く数字を継続標識として認識します (ただし、継続標識欄の数字 0 は常に空白とみなします) 。未サポートのユーティリティに含まれる FIXMSTAB ユーティリティは、MS タブ形式のソース・ファイルを標準の Fortran 継続行形式に変換します。
最初の 5.0 のリリースでは、Developer Studio のエディタは新しいファイルが作成された場合、MS のタブ形式に従います。これは、5.0A で修正されています。
【先頭に戻る】
VF はファイルの先頭の INTERFACE TO の宣言を受け付けないのですか?
10-Nov-1997
FPS 1.0 (Fortran 77 コンパイラー) は、INTERFACE TO 拡張宣言をサポートしていました。これは、Fortran 90 でインタフェース宣言となりました。構文の定義に加えて、Microsoft はプログラム単位 (一般的にはソース・ファイルの先頭) の外に INTERFACE TO 宣言を置くことを許しています。これにより、ソース・ファイルの全てのプログラム単位にそれらの宣言が適用されます。このファイル有効範囲の概念は、C 言語から来たもので Fortran 言語にはありません。FPS 4.0 (Fortran 90 コンパイラー) は、INTERFACE TO 構文と置き場所を引き続きサポートしていますが、それらはドキュメントされていません。これにもかかわらず、この機能を使うプログラマがたくさんいます。
VF は、INTERFACE TO 構文を実装していますが、FPS のようなファイル有効範囲の概念をサポートしていないため、ファイルの先頭に INTERFACE TO を記述することはできません。この問題を解決するには、プログラムを変更し INTERFACE TO 宣言をモジュール内に記述し、その宣言を必要とするプログラム単位から USE 文でそのモジュールを参照する必要があります。
【先頭に戻る】
QuickWin プログラムで、「FILE=''」を指定してファイルを開き、Windows のファイル表示ボックスを表示させる FPS 機能を使うことができますか?
Developer Studio で「Project」メニューから「Settings」を選択し、表示される画面で「Fortran」タブをクリックし、「Compatibility」カテゴリを選択し、「Filenames from Command Line」を選択します。コマンド行では、「/fpscomp:filesfromcmd」コンパイル・オプションを指定します。
【先頭に戻る】
どのようにすれば GETCHARQQ や INCHARQQ を使って矢印キーや PageUp/PageDown の情報を得ることができますか?
12-Aug-1997
新しい PASDIRKEYSQQ ルーチンが 5.0A から提供されており、ウィンドウがスクロールされず、方向値またはページ・キー値がアプリケーションに渡されます。詳細は、dirkeys.f90 と dirkeys2.f90 を参照してください。
【先頭に戻る】
なぜ PEEKCHARQQ は QuickWin アプリケーションでは動かないのですか?
12-Aug-1997
Windows アプリケーションでは、「outanding read」がなければキーボード・イベントは無視されます。ビープが鳴りキー入力は捨てられます。予期せぬキー入力を格納するコンソール・バッファはありません。これを解決する方法は幾つかあります。サンプルの peekapp.f90 は 1 つの例です。またキットに含まれるサンプルの Poker はもう 1 つの例です。
【先頭に戻る】
どのようにしたら QuickWin ウィンドウのスクロール・バッファに 35 行以上を格納することができますか?
12-Aug-1997
SETWINDOWCONFIG ルーチンを使って wc.numtextrows を更新することにより、スクロール・バッファの行数を変えることができます。
【先頭に戻る】
ディスクのどこにサンプルが格納されていますか?
「Typical」インストールを選択した場合、ハードディスク上にはサンプルはインストールされません。その場合、CD-ROM 中のディレクトリにアクセスしてください。「Custom」インストールを選択し、「Samples」のボックスをチェックするとすべてのサンプルをハードディスク上に (DF98\Samples ディレクトリ) インストールすることができます。別の方法として、個々のサンプル・プロジェクトのディレクトリを CD-ROM からハードディスク上の My Projects ディレクトリにコピーすることもできます。
【先頭に戻る】
SciGraph ルーチンについて記述する SCIGRAPH.WRI ファイルが壊れています。
12-Aug-1997
これは最初の V5.0 スタンダード版キットの問題でした。HTML フォーマットに変換した修正バージョンがあります。
【先頭に戻る】
サンプル・プログラムを自分のワークスペースでビルドすると、ルーチン _GetFileVersionInfoSize@8、_GetFileVersionInfoA@16、_VerQueryValueA@16 が未解決のリンク・エラーとなります。
29-Oct-1997
「Project」メニューから「Settings」を選択し、表示される画面で「Link」タブを選択し、「Object/Library Modules」に「version.lib」を追加してください。
【先頭に戻る】
Visual Basic から DLL 中の Fortran ルーチンを呼ぶことができません。また V5 の Programmer's Guide 中のサンプルが動きません。
16-Feb-2001
Visual Basic と VF が混在したプログラミングをデモする FortranCall のサンプルには、幾つかのエラーがあります。正しいバージョンがここにあります。V6 以降では修正されています。
以下の一般的なヒントを参照してください。
- VB は、DLL 中のルーチンを呼び出すために STDCALL メカニズムを常に使用します。これは、VF の基本設定と同じです。しかし、VB は @n 接尾辞を使用しません。したがって、VB のコードに設定される名前に一致するように ATTRIBUTES ALIAS 指示文を使って名前を変更する必要があります。なお、VB 5.0 の外部名は大文字と小文字の区別があることに注意してください。
- 数値のスカラ値は参照で渡されます。これは VF の基本設定と同じです。
- VB の文字列を渡すためには、VB のコードでは引数を ByVal で宣言します。Fortran のコードでは Fortran のルーチンに対しては明示的に ATTRIBUTES STDCALL を宣言し、固定長の文字引数に対しては ATTRIBUTES REFERENCE を明示的に宣言します。(VB のコードは少なくともその長さの文字列を渡すことを確認してください。)
- Fortran では REFERENCE 属性を省略した場合、CHARACTER(LEN=*) を指定することができます。一方、VB のコードでは、文字列引数の直後に明示的に長さ (LEN 組込み関数を使って) ByVal で、そして引数の長さを Long で指定しなければなりません。
- VB から VF に配列を渡すには、Fortran で通常に配列を宣言し、スカラ (たとえば、A(1)) として配列の第 1 要素を渡します。VB は、通常 OLE SAFEARRAY 記述子で配列を渡します。Basic では配列の 0 が原点で、Fortran では配列の 1 が原点で、両方とも列主順であることに注意してください。
付加的なヒントは、ニュースレターでご参照になれます。
【先頭に戻る】
Fortran と C/C++ が混在したアプリケーションをリンクすることができません。
27-Feb-1998
C/C++ のソース・ファイルが、.cpp のファイル拡張子を持っている場合、Visual C++ は外部名に対して C++ の名前生成規則を適用します。これが、 Fortran ルーチンとの間で参照ができなくなる原因になる場合があります。この問題を回避するためには、C/C++ のコードの EXTERN 宣言に "C" 属性を追加してください。2 つのサンプルを示します。1 つ目は C から Fortran を呼ぶ例で、2 つ目は Fortran から C を呼ぶ例です。
【先頭に戻る】
なぜ Programmer's Guide はオンライン形式しかないのですか? 印刷版をオーダすることはできますか?
16-Dec-1998
Programmer's Guide は、Digital Press より出版されています。詳細は、Programmer's Guide Book を参照してください。Programmer's Guide は、Adobe Acrobat (PDF) 形式で無償でダウンロードできます。なお、これらはすべて英語で記述されています。
【先頭に戻る】
SciGraph のグラフ作成ライブラリーはどこにありますか?
12-Aug-1997
DF98\Samples\General\Scigraph にあります。そこには Scigraph および Sgdemo という 2 つのサンプル・プロジェクトがあります。Scigraph は SciGraph という .lib ファイルを作成し、Sgdemo は各種のグラフを使ったデモを実行します。そこには Scigraph.wri というドキュメントもあります。
【先頭に戻る】
Windows 95 用の OpenGL の DLL はどこにありますか?
20-Oct-1997
Microsoft は、Windows 95 のオリジナル・リリースでは OpenGL DLL を提供していませんでした。それらは、Windows 95 OSR2 と Windows NT で提供されていますし、Microsoft からダウンロードすることもできます。詳しくは、Microsoft 知識ベースの記事 Q154877 を参照してください。
【先頭に戻る】
OpenGL のプログラミングのためのヘルプはどこから得られますか?
30-Jan-1998
OpenGL のいくつかのドキュメントは、Win32 SDK オンライン・マニュアルで提供されていますが、これは、インタフェースの一部をカバーしているだけです。Microsoft 作成の OpenGL を教授する優れた本は、Waite Group Press の『OpenGL SuperBible』です。詳細については、ブックストアを参照してください。
DFOPNGL モジュールでは、fで始まる OpenGL ルーチン名を使っています。たとえば、glBeginは fglBegin として呼び出されます。コールバック・ルーチンは、すべて STDCALL ですが、値を受け取る引数を持ちます。OpenGL ルーチン (たとえば、fauxIdleFunc) が、コールバック・アドレスを必要とする時、LOC (ルーチン) を渡します。
ニューズグループ (comp.graphics.api.opengl) は、別な有用なリソースです。
【先頭に戻る】
Win32 プログラミングのためのヘルプはどこから得られますか?
19-Sep-1997
VF は、Win32 SDK オンライン・ドキュメントを提供しています。追加のリソースとしては、ニュースグループ (comp.os.ms-windows.programmer.win32) とブックストアで紹介されている本があります。
【先頭に戻る】
|