ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【HolonEnterprise】Windowsにおける文字定数の文字列更新

質問内容

文字定数(例:'abcdef')を&TRACEで出力すると、不正な文字列となって出力される場合があります。原因と対処方法を教えてください。

回答内容

文字定数が破壊されているため、本現象が発生している可能性があります。
例えば、以下のようなコーディングを行うことで、文字定数は破壊されます。

共通関数名:Func01
パラメータ:なし
処理定義:
 BLOCK
   Func02( ' ' )

共通関数名:Func02
パラメータ:p1 ZCHAR 255
処理定義:
 BLOCK
   p1 := 'abcdefghijk'

文字定数は特殊な領域に配置されるため、一旦書き換えると、そのまま値が保持され続けます。また、上記コーディング例のように、小さな文字定数に対して、より大きな文字定数を代入すると、メモリ上で隣接する文字定数も破壊されます(文字定数''に対し、直接転記を行わずとも、破壊される可能性があります)。

上記内容を踏まえ、以下の観点で仕様ファイル(*.SPC)のご確認をお願いいたします。
・文字定数を関数のパラメータに指定し、関数内で文字定数の代入を行っている箇所が存在しないか
・文字定数を関数のパラメータに指定し、受け取ったパラメータをポインタとして扱い、ポインタ内容の書き換えを行っている箇所が存在しないか
・隣接する文字定数の内容破壊が発生するほどのサイズ差が生じるメモリ転記が存在しないか

【確認済みのバージョン】すべてのバージョン
【確認済みの対象OS】Windows
【カテゴリー】トラブルシューティング

製品名カテゴリ

HolonEnterprise

  • コンテンツID: 3150106949
  • 公開日: 2014年02月26日
  • 最終更新日:2014年02月26日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。