PPLKB-20:【C++】コードリソースでは使えない言語機能 - project-enigma

PPLKB-20:【C++】コードリソースでは使えない言語機能

>> Site top >> Misc >> In my palm >> Palm開発情報 >> PPLKB-20:【C++】コードリソースでは使えない言語機能

最終更新日付:2014/01/01 00:00:00

コードリソースでは使えない言語機能

概要

この記事では、Palm 向けコードリソースにおいて大域データが使用できない関係から、C++ の言語機能の一部が使用できなくなる問題について説明します。

 

説明

Palm OS では、アプリケーションが sysAppLaunchCmdNormalLaunch 以外で起動された場合、大域データを使用することができません。これは、A5 レジスタを介して参照される大域データは sysAppLaunchCmdNormalLaunch 起動された場合のみ設定されることに起因するものです。そのため、コンパイル・リンク時にはエラーも警告も発生しません( CodeWarrior にて確認 )。

C++ の言語機能の一部は、コンパイラが内部的に大域データを使用することで実現されています。これらの機能は、大域データを使用することができないような状況では、使用することができなくなります。CodeWarrior のマニュアルによれば、具体的には以下の言語機能が使用できなくなるとされています。

また、C++ 標準ライブラリのほとんどの関数・クラス・テンプレート、および new / delete もまた大域データ無しでは動作しないと書かれています。ただし、例外を投入しない new / delete であれば使用できるようです。

コメント

このページの情報に関する誤りや追加情報がありましたら、コメントをお願いします。

 

 


Copyright(C) 2005-2017 project-enigma.
Generated by CL-PREFAB.