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