動的バインドされるアプリケーションの場合、プログラムのロード順は、検索するランタイム・システムおよびランタイム・システムの使用方法に影響します。 次に例を示します。
「1 番目」の COBOL .dll ファイルとは、実行時に COBOL ランタイム・システムを必要とするアプリケーションの、最初にロードされるコンポーネントのことです。以下の説明に出現する「.exe ファイル」は、「1 番目の .dll ファイル」と読み替えることもできます。
アプリケーションを実行すると、アプリケーションのリンク方法に応じて、.exe ファイルが互換性のあるランタイム・システムを検出し、ロードします。
動的バインドされる実行可能ファイルを作成する際、実行可能ファイルで使用できるランタイム・システムのレベルを指定できます。これによって、実行可能ファイルがリンクしたランタイム・システムより新しいバージョンのランタイム・システムも使用できるようにするか、または現在のリリースのランタイム・システムしか使用できないように限定するかを選択できます。
ランタイム・システムのレベルとスレッド・モードに対して、次のチェックが行われます。
\HKEY_LOCAL_MACHINE\SOFTWARE
\Micro Focus\Visual COBOL\x.y\COBOL\Environment\PATH
ここで、
いずれの場合も、ランタイム・システムのロード完了時にバージョンとタイプがチェックされ、互換性がなければ通知されます。
同じプロセスに 2 番目以降にロードされる .dll ファイルは、プロセス内の既存のランタイム・システムにバインドする必要があります。動的バインドを使用しないアプリケーションを作成する場合は、アプリケーション内のすべてのプログラムを必ず同じランタイム・システムにリンクしてください。別のランタイム・システムにリンクされるプログラムがあると、競合によってアプリケーションが異常終了するおそれがあります。
アプリケーション内の 2 番目以降の .dll ファイルの作成時に動的バインドを使用する場合は、それらのファイルをロード済みで互換性のあるランタイム・システムのいずれかにバインドするか、通知用の診断メッセージを出力してクリーンに異常終了させるかを指定できます。