Tips

Interprocess Pointers to process variables

日付2002/01/24
ID01-827
バージョン6.5.x and 6.7.x
プラットフォームWindows and Mac OS

Interprocessポインター変数がプロセス変数を指す場合、それを知ることは重要です。ポインター、常に参照、割り当てが最初に作られたプロセスでの変数。次のコードはこの様子を強調します。uncompiledを実行する時あなたが期待するかもしれないようにコードが作用するだろうということに注目することは重要です。コンパイルされたこのコードを実行する場合、ALERTメッセージは異なります。

C_LONGINT(<>Count)
C_POINTER(<>pMyVar)
C_TEXT(tMyVar)

Case of
ハ: (<>Count=0) `# of times this method has been called
ハ<>pMyVar:=->tMyVar
ハtMyVar:="Hello world!"
Else
ハtMyVar:="Launching #"+String(<>Count)
End case

C_STRING(31;$sName)
C_LONGINT($iTable;$iField)

RESOLVE POINTER(<>pMyVar;$sName;$iTable;$iField)

ALERT("Variable Name: "+$sName+Char(13)+"Variable Value: "+<>pMyVar->)

If (<>Count=0)
ハ <>Count:=<>Count+1
ハC_LONGINT($iProcess)
ハ $iProcess:=New process(Current method name;32000;"NewProcess")
End if

これをテストするためには、ブランクのデータベースを作成してください。新規メソッド作成して、何か望む名称をつけてください。それがuncompileしたコード例および実行にペーストしてください。アプリケーションをコンパイルして、それを再び実行してください。コンパイルされコンパイルされなかったモード間でtMyVarの報告された値が異なることに注意してください。