デフォルトのリンケージ規約は SYSTEM(STDCALL) です。これは、コンパイラー・オプション CALLINT(SYSTEM) を使用するときに有効になります。
この規約では、呼び出し先ルーチンの名前が次の 2 つの方法で拡張されます (名前装飾 として知られます)。
このリンケージ規約を使用する場合は、呼び出し側プログラムの引数リストが、呼び出し先サブルーチンのパラメーター・リストと正確に一致していることを確認してください。 例えば、次のステートメントをコーディングしたとします。
Call SubProg Using Parm-1 Parm-2.
この場合、呼び出し先ルーチンの名前は _SubProg@8 となりますが、SubProg ルーチン自体は次のようにコーディングされているとします。
Procedure Division Using Parm-1 Parm-2 Parm-3.
この場合、システム生成される名前は _SubProg@12 となります。このように名前が異なると、リンカーは _SubProg@8 への呼び出しを解決できないため、リンカー・エラーが発生します。