次表に,Fortran,Visual C/C++,Visual Basic,および MASM が手続名をどのように処理するかを要約して示します。MASM の場合,この表は,CASEMAP: ALL オプションが使用されている場合には当てはまらないことに注意してください。
Fortran,Visual C/C++,Visual Basic,および MASM での名付け規約
言語 | 属性 | 変換後の名前 | .OBJ ファイル中の名前の大文字小文字 |
Fortran | cDEC$ ATTRIBUTES C | _name | すべて小文字 |
cDEC$ ATTRIBUTES STDCALL | _name@n | すべて小文字 | |
基本設定 | _name@n | すべて大文字 | |
C | cdecl (基本設定) | _name | 大文字小文字の区別は保たれる |
__stdcall | _name@n | 大文字小文字の区別は保たれる | |
Visual C++ | 基本設定 | _name@@decoration | 大文字小文字の区別は保たれる |
Visual Basic | 基本設定 | _name@n | 大文字小文字の区別は保たれる |
MASM | C (PROTO および PROC 宣言で) | _name | 大文字小文字の区別は保たれる |
STDCALL (PROTO および PROC 宣言で) | _name@n | 大文字小文字の区別は保たれる |
次に,この表で使われている記号の意味を示します。
先頭の下線 (_name など) は ia32 システムでのみ使用されます (ia64 システムでは使用されません)。
@n は,ia32 システムのみで,パラメタが占有するスタック空間を 10 進数で表します (ia64 システムでは使用されません)。
たとえば,C において関数が次のように宣言されていたとします。
extern int __stdcall Sum_Up( int a, int b, int c );
個々の整数は 4 バイトを占有しているので,ia32 システムで .OBJ ファイルに格納されているシンボル名は次のようになります。
_Sum_Up@12
ia64 システムでは,.OBJ ファイルに格納されているシンボル名は次のようになります。
Sum_Up