![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework UNIVERSE 5.0 |
C++ 言語の全てのメモリ操作について、BREW シミュレーター上でのメモリの追跡が可能です。
MemoryAllocate マクロは、BREW シミュレーター上でのメモリ追跡が可能なメモリ割り当て機能を提供します。
![]() |
注意 |
|---|---|
| MemoryAllocate マクロはメモリを初期化しません。 | |
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合は SFDWatcher::malloc に、 TARGET_ENVIRONMENT_PHYSICAL マクロが定義されている場合は SFXHelper::malloc に 置き換えられます。
SInt16Ptr p = reinterpret_cast<SInt16Ptr>(MemoryAllocate(sizeof(SInt16) * 256));
![]() |
注意 |
|---|---|
| 上のコードでは SInt16 256個分のメモリを確保しています。 | |
![]() |
注意 |
|---|---|
| SophiaFramework では、BREW ヘルパー関数の MALLOC 関数と ERR_MALLOC 関数の代わりに MemoryAllocate マクロを使います。 | |
MemoryReallocate マクロは、BREW シミュレーター上でのメモリ追跡が可能なメモリ再割り当て機能を提供します。
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合は SFDWatcher::realloc に、 TARGET_ENVIRONMENT_PHYSICAL マクロが定義されている場合は SFXHelper::realloc に 置き換えられます。
![]() |
注意 |
|---|---|
| MemoryReallocate マクロはメモリを初期化しません。 | |
SInt16Ptr p = reinterpret_cast<SInt16Ptr>(MemoryAllocate(sizeof(SInt16) * 256)); ... p = reinterpret_cast<SInt16Ptr>(MemoryReallocate(p, sizeof(SInt16) * 4096));
![]() |
注意 |
|---|---|
| SInt16 256 個分のメモリを確保した後に、SInt16 4096 個分の領域を広げます。 | |
![]() |
注意 |
|---|---|
| SophiaFramework では、BREW ヘルパー関数の REALLOC 関数と ERR_REALLOC 関数の代わりに MemoryReallocate マクロを使います。 | |
MemoryFree マクロは、BREW シミュレーター上でのメモリ追跡が可能なメモリ解放機能を提供します。
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されている場合は SFDWatcher::free に、 TARGET_ENVIRONMENT_PHYSICAL マクロが定義されている場合は SFXHelper::free に 置き換えられます。
SInt16Ptr p = reinterpret_cast<SInt16Ptr>(MemoryAllocate(sizeof(SInt16) * 256)); ... MemoryFree(p);
![]() |
注意 |
|---|---|
| 予め確保されたメモリ領域を解放しています。 | |
![]() |
注意 |
|---|---|
| SophiaFramework では、BREW ヘルパー関数の FREE 関数の代わりに MemoryFree マクロを使います。 | |
下表のように、new / delete 演算子によって呼ばれる関数は メモリ追跡機能の有無に関する TARGET_ENVIRONMENT_SIMULATOR / TARGET_ENVIRONMENT_PHYSICAL マクロの定義に依存します。
表 28.2. new / delete 演算子によって呼ばれる関数
| 演算子 | TARGET_ENVIRONMENT_SIMULATOR (メモリ追跡機能有効) | TARGET_ENVIRONMENT_PHYSICAL (メモリ追跡機能無効) |
|---|---|---|
| new | SFDWatcher::malloc | SFXHelper::malloc |
| delete | SFDWatcher::free | SFXHelper::free |
![]() |
注意 |
|---|---|
| コンストラクタで初期化の記述をしないと、new 演算子はメモリを初期化しません。 | |
SophiaFramework では、メモリの割り当てや解放に関連する BREW ヘルパー関数を使えません。
表 28.3. SophiaFramework で使えない BREW ヘルパー関数と、その代替としてのマクロ、演算子、関数またはクラス
| 使えないヘルパー関数 | 代替のマクロ・演算子・関数・クラス |
|---|---|
| MALLOC、ERR_MALLOC | MemoryAllocate / new |
| REALLOC、ERR_REALLOC | MemoryReallocate |
| FREE | MemoryFree / new |
| STRDUP、ERR_STRDUP | SFXAnsiString |
| WSTRDUP | SFXWideString |
TARGET_ENVIRONMENT_SIMULATOR マクロが定義されているときに、 メモリ操作について SFDWatcher クラスを使うと、BREW シミュレーター上でメモリを追跡できます。
関連情報 : SFDWatcher
|
Copyright (C) 2002 - 2008 Sophia Cradle Incorporated All Rights Reserved. |
![]() ![]() ![]()
|