複数の入り口点 (PROCEDURE DIVISION USING ... および ENTRY xxx USING . . .) を持つ呼び出し側プログラム用の SYSTEM(STDCALL) 規約を常に使用できるわけではありません。
各入り口点のパラメーター数が異なる場合や、呼び出し元が呼び出し先入り口点が想定する数の引数を渡さない場合は、STDCALL 規約により、予測不能な結果が生じる可能性があります。 STDCALL 規約を使用する場合は、呼び出し側プログラムが引数を格納したスタックを、呼び出し先プログラムがクリーンアップする必要があります。呼び出し先プログラムは渡された引数の数を判断できないため、期待される数の引数を使用します。この数と渡された数が異なると、呼び出し先プログラムはスタックを正しくクリーンアップできません。
複数の入り口点を持つプログラムに共通の出口点を使用することはできないため、入り口点ごとに引数の数が異なると、スタックを正しくクリーンアップする方法を判断することができません。
データ型: STDCALL リンケージは、引数ごとにスタック上で 4 バイトを使用するため、データ型の違いは重要ではありません。
関連参照
SYSTEM