Top  PC情報Top


「MemoryEmu」と名付けて、ただファイルから取得した情報をメモリとして保持し、
それを提供するだけのツール(I/F)です。開発環境に組み込んで使ってください。
処理内容は指定されたサイズに合わせて、領域を確保し、そこにファイルから読み込んだ情報を保持します。
後述のI/Fがコールされるたびにファイルから読み込むため、ファイルを編集するとリアルタイムで反映されるように見えます。
つまり、ファイルを編集するシステムと組み合わせると、より豪華な機能を提供することが可能です。
使うI/Fは2つ。
void InitMemory();
初期化関数です。メモリ内容の参照ファイルが必要になりますが、初回起動時でファイルがない場合は、ファイルを生成します。
ファイルを生成するディレクトリは「./data/」です。このディレクトリがない場合は生成します。
ディレクトリもファイルもある場合は何もせずに処理を終了します。

char* GetMemory(char* p_buf = NULL);
このツール(I/F)の本題です。
メモリ内容を提供するI/Fです。一応引数を設定しなくても使用できるようにしていますが、
その場合はグローバル変数に設定するため、引数にバッファのアドレスを設定することを推奨します。
あと、グローバル変数に設定するケースの動作確認はしていません(忘れてた。。。)

ソースコード中のカスタマイズ対象は下記の通りです。
「tool.cpp」の最初の方に指定している定数がカスタマイズ対象です。
BoxSize:一つあたりのメモリサイズで、単位はbyteです。
MemorySize:メモリのサイズです。説明してませんでしたが、1つ当たりのメモリサイズは1000*BoxSizeです。
 なので、ここに「25」を設定し、BoxSizeに「2」を設定すると、25*1000*2となり、50000バイトのメモリ領域を模擬します。

ソースコード