次の方法で共有


CSharedFile クラス

更新 : 2007 年 11 月

CMemFile の派生クラスで、共有メモリ ファイルをサポートします。

class CSharedFile : public CMemFile

解説

メモリ ファイルは、ディスク上ではなく RAM に保存されること以外は、ディスク ファイルと同じように機能します。メモリ ファイルは、高速の一時記憶領域として、あるいは生バイトまたはシリアル化されたオブジェクトを独立したプロセス間で転送するときに便利です。

共有メモリ ファイルは、Windows 関数 GlobalAlloc で割り付けたメモリ内にメモリ ファイルを置くという点が、ほかのメモリ ファイルと異なります。CSharedFile クラスは、GlobalAlloc で作成したグローバル メモリ ブロックにデータを格納します。このメモリ ブロックは、DDE、クリップボードなどの OLE/COM 統一データ転送操作によって IDataObject などを使用して共有できます。

GlobalAlloc は、malloc のようにメモリへのポインタを返すのではなく、HGLOBAL ハンドルを返します。アプリケーションによっては HGLOBAL ハンドルが必要になります。たとえば、クリップボードにデータを書き込むような場合に必要になります。

CSharedFile はメモリ マップト ファイルを使用しません。データはプロセス間で直接共有されます。

CSharedFile オブジェクトは、自動的に必要なメモリを割り当てることも、CSharedFile::SetHandle を呼び出して、CSharedFile オブジェクトに独自のメモリ ブロックを付加することもできます。いずれの場合も、nGrowBytes が 0 以外の値のときは、メモリは nGrowBytes に指定されたサイズで増分されて割り当てられ、メモリ ファイルが自動的に拡張されます。

詳細については、「ランタイム ライブラリ リファレンス」の「MFC のファイル」と「ファイル処理」を参照してください。

必要条件

ヘッダー : afxadv.h

スマート デバイス開発者のためのメモ

このクラスは、スマート デバイス プロジェクトではサポートされません。

参照

参照

CMemFile クラス

階層図

CMemFile クラス

GlobalAlloc

GlobalFree

GlobalRealloc

その他の技術情報

CSharedFile のメンバ