iface

 

アプリケーションのデフォルトの呼び出し規則と引数渡し規則を指定します。

IDE オプション

Windows: [External Procedures (外部プロシージャー)] > [Calling Convention (呼び出し規則)] (/iface:{cref|stdref|stdcall|cvf|default})

[External Procedures (外部プロシージャー)] > [String Length Argument Passing (文字長引数渡し)] (/iface:[no]mixed_str_len_arg)

Linux: なし

Mac OS X: なし

アーキテクチャー

IA-32、インテル® 64、IA-64 アーキテクチャー

構文

Linux および Mac OS X:

なし

Windows:

/iface:keyword

引数

keyword

呼び出し規則または引数渡し規則を指定します。設定可能な値は以下のとおりです。

デフォルト

デフォルトの呼び出し規則を使用します。

cref

C 呼び出し規則または REFERENCE 呼び出し規則を使用します。

cvf

Compaq* Visual Fortran と互換性のある呼び出し規則を使用します。

[no]mixed_str_len_arg

文字長が隠された文字引数に対して使用する引数渡し規則を指定します。

stdcall

STDCALL 呼び出し規則を使用します。

stdref

STDCALL 呼び出し規則または REFERENCE 呼び出し規則を使用します。

デフォルト

/iface:default

デフォルトの呼び出し規則が使用されます。

説明

このオプションは、アプリケーションのデフォルトの呼び出し規則と引数渡し規則を指定します。

このオプションによって制御される呼び出し規則と引数渡し規則は、次のとおりです。

ATTRIBUTES コンパイラー宣言子を使用して、これらの規則を個別に変更することもできます。ATTRIBUTES 宣言子の動作は、同じ名前を持つ iface オプションの動作と常に同じとは限りません。

オプション

説明

/iface:default

デフォルトの呼び出し規則を使用します。これらの規則は次のとおりです。

  • 呼び出しメカニズム: C

  • 引数渡しメカニズム: 参照渡し

  • 文字長引数渡し: 引数リストの最後

  • 外部名の大文字/小文字: 大文字

  • 名前の修飾: IA-32 アーキテクチャーでは、プリフィックスに下線を使用します。インテル® 64 および IA-64 アーキテクチャーでは、プリフィックスはありません。

/iface:cref

外部名が小文字であることを除き、/iface:default と同じ規則を使用します。

/iface:cvf

Compaq Visual Fortran および Microsoft* Fortran PowerStation と互換性のある呼び出し規則を使用します。これらの規則は次のとおりです。

  • 呼び出しメカニズム: STDCALL

  • 引数渡しメカニズム: 参照渡し

  • 文字長引数渡し: 引数アドレスの後

  • 外部名の大文字/小文字: 大文字

  • 名前の修飾: IA-32 アーキテクチャーでは、プリフィックスに下線を使用します。インテル® 64 および IA-64 アーキテクチャーでは、プリフィックスはありません。IA-32 アーキテクチャー・ベースの Windows システムでは、サフィックスに @n を使用します。n は、プロシージャーが終了したときにスタックから削除するバイト数です。ほかのシステムでは、サフィックスはありません。

/iface:mixed_str_len_arg

文字長が隠された文字引数に対して使用する引数渡し規則を指定します。このオプションは、文字引数の隠された文字長を、引数リストの対応する文字引数の直後に置くようにコンパイラーに指示します。

この手法は、Compaq Visual Fortran で使用されています。文字引数の受け渡しを行う言語が混在したプログラムを移植するときには、このオプションを正しく指定するか、ソースコード内で隠された文字長を持つ文字引数の順序を変更する必要があります。このオプションは、ほかの /iface オプションと一緒に使用することができます。

/iface:stdcall

次の呼び出し規則を使用します。

  • 呼び出しメカニズム: STDCALL

  • 引数渡しメカニズム: 値渡し

  • 文字長引数渡し: 引数リストの最後

  • 外部名の大文字/小文字: 大文字

  • 名前の修飾: IA-32 アーキテクチャーでは、プリフィックスに下線を使用します。インテル® 64 および IA-64 アーキテクチャーでは、プリフィックスはありません。IA-32 アーキテクチャー・ベースの Windows システムでは、サフィックスに @n を使用します。n は、プロシージャーが終了したときにスタックから削除するバイト数です。ほかのシステムでは、サフィックスはありません。

/iface:stdref

引数が参照渡しされることを除き、/iface:stdcall と同じ規則を使用します。

Caution icon警告

Windows システム上では、/iface:cref オプションを指定するとデフォルトの外部名が上書きされ、小文字になります。外部名に対して "!dec$ attributes c, reference" を指定するのと同じです。

/iface:cref オプションを指定し、さらに外部名を大文字にする場合は、/names:uppercase オプションを明示的に指定しなければなりません。

Caution icon警告

IA-32 アーキテクチャー・ベースのシステムでは、呼び出し側のプログラムと呼び出される側のプロシージャーの呼び出しメカニズム (C または STDCALL) が一致していなければなりません。そうでない場合、予期しないエラーが発生することがあります。デフォルトのメカニズムを STDCALL に変更する場合、ATTRIBUTES DEFAULT 宣言子を使用して、OPEN 文の USEROPEN キーワードで指定されているルーチンと QSORT ライブラリー・ルーチンに渡される比較ルーチンの呼び出し規則をリセットする必要があります。

代替オプション

/iface:cvf

Linux および Mac OS X: なし

Windows: /Gm

/iface:mixed_str_len_arg

Linux および Mac OS X: -mixed-str-len-arg

Windows: なし

/iface:nomixed_str_len_arg

Linux および Mac OS X: -nomixed-str-len-arg

Windows: なし

/iface:stdcall

Linux および Mac OS X: なし

Windows: /Gz

関連情報