Interprocess Pointers to process variables
日付 | 2002/01/24 |
---|---|
ID | 01-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の報告された値が異なることに注意してください。