DFAUTO サブルーチン:引数名と値を渡し,引数並びデータ構造体に引数を追加します。
モジュール:USE DFAUTO,USE DFWINTY
形式
CALL AUTOAddArg(invoke_args,name,value[,intent_arg][,type])
invoke_args
引数並びデータ構造体。ia32 プロセッサーでは INTEGER(4),ia64 プロセッサーでは INTEGER(8) 型でなければなりません。
name
型 CHARACTER*(*) の引数の名前。
value
引数の値。型 INTEGER(2), INTEGER(4), REAL(4), REAL(8), LOGICAL(2), LOGICAL(4), CHARACTER*(*),またはこれらの型の 1 つの 1 次元配列でなければなりません。DFWINTY モジュールで定義されている型 VARIANT でもかまいません。
intent_arg
呼び出したメソッドが使用する引数の使用方法を指示します。DFAUTO モジュールで定義されている以下の 1 つを使わなければなりません。
AUTO_ARG_IN - 呼び出したメソッドが引数の値を読みます。これは,intent_arg が指定されなかった場合の基本値です。
AUTO_ARG_OUT - 呼び出したメソッドが引数の値を書き込みますが,読みません
AUTO_ARG_INOUT - 呼び出したメソッドが引数の値を読み,書き込みます。
intent_arg の値が,AUTO_ARG_OUT または AUTO_ARG_INOUT である場合,type パラメタで使用される変数は VOLATILE 属性を使って宣言されなければなりません。これは,変数の値が続いて呼び出される AUTOInvoke で変更されるためです。コンパイラの大域的な最適化は,値が予期しない時に変更されることを知らなければなりません。
type
引数の VARIANT 型。DFWINTY モジュールで定義されている以下の定数の 1 つでなければなりません。
VARIANT 型 | 値の型 |
---|---|
VT_I2 | INTEGER(2) |
VT_I4 | INTEGER(4) |
VT_R4 | REAL(4) |
VT_R8 | REAL(8) |
VT_CY | REAL(8) |
VT_DATE | REAL(8) |
VT_BSTR | CHARACTER*(*) |
VT_DISPATCH | INTEGER(4) |
VT_ERROR | INTEGER(4) |
VT_BOOL | LOGICAL(2) |
VT_VARIANT | TYPE(VARIANT) |
VT_UNKNOWN | INTEGER(4) |