Показать сообщение отдельно
  #1  
Старый 25.04.2012, 12:03
rutony rutony вне форума
Прохожий
 
Регистрация: 24.04.2012
Сообщения: 4
Репутация: 10
По умолчанию Как распределить 2 массива в область памяти

Код:
   TSumbolRecord = record
      Code     : Smallint;         // виртуальный код  ascii
      Unicode  : Smallint;         // вирт. код unicode
      Sumbol   : Char;             // символ как он есть 0..9, А..Я
      Tick     : Cardinal;         // тик
      State    : TShiftState;      // состояния шифтов
   end;

   TBuffer = array[0..511] of TSumbolRecord;

...

   pntrBuffer      : ^TBuffer;
   pntrBuffer2      : ^TBuffer;

...

   FMemFile := CreateFileMapping($FFFFFFFF, // $FFFFFFFF gets a page memory file
            nil,                // no security attributes
            PAGE_READWRITE,     // read/write access
            0,                  // size: high 32-bits
            0,   // size: low 32-bits
            NameMapObject);    // name of map object

   FMemFile   := OpenFileMapping(FILE_MAP_WRITE, False, NameMapObject);
   pntrBuffer := MapViewOfFile(FMemFile, FILE_MAP_WRITE, 0, 0, 0);

...

   FMemFile := CreateFileMapping($FFFFFFFF, // $FFFFFFFF gets a page memory file
            nil,                // no security attributes
            PAGE_READWRITE,     // read/write access
            0,                  // size: high 32-bits
            0,   // size: low 32-bits
            NameMapObject);    // name of map object

   FMemFile   := OpenFileMapping(FILE_MAP_WRITE, False, NameMapObject);
   pntrBuffer2 := MapViewOfFile(FMemFile, FILE_MAP_WRITE, 512 * SizeOf(TSumbolRecord), 0, 0);

Оба открытия области памяти в разных местах программы, здесь вместе для наглядности.
Ответить с цитированием