【HolonEnterprise】HolonEnterprise 64bit版移行において、PTR型にすべきケースについて
質問内容
HolonEnterpriseの64bit版への移行において、以下の修正指示がありました。
「関数(実体)の返却値がポインタ型である場合、呼び出し側プログラムの関数属性宣言には、PTR型を指定する必要があります。」
しかし、プログラム修正を行わずに実行したところ、正常動作しました。
この場合、どのような原因が考えられるでしょうか?
また、正常動作している場合、修正は不要でしょうか?
回答内容
・正常動作する原因について。
PTR型の8バイトのうち、上位4バイトが0となっていたと考えます。
PTR型の値をLONG型へ代入する際に、上位4バイトが欠落しますが、
上位4バイトが0の場合、欠落の影響がないため、正常に動作します。
・正常動作していれば、修正不要か?について。
64bitOSにおいては、PTR型の上位4バイトも使用し得るため、
LONG型のままでの正常動作は保証できません。
また、誤ったPTRの値(上位4バイトが欠落した値)で書込みを行った場合、
メモリ破壊を起こす可能性があります。
従いまして、必ず修正をお願いいたします。
【確認済みのバージョン】HolonEnterprise V12.0以降
【確認済みの対象OS】すべてのOS
【カテゴリー】環境移行
製品名カテゴリ
-
コンテンツID:
3150110057
-
公開日:
2015年07月29日
-
最終更新日:2015年07月29日
アンケート
サポート情報充実のためアンケートにご協力をお願いいたします。
コメント欄: