Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.04;
Скачать: CL | DM;

Вниз

Непонятки с функцией CreateFileMapping...   Найти похожие ветки 

 
Jolik ©   (2005-09-29 15:41) [0]

Замечено:
при вызове
FHandle := CreateFileMapping( MAXDWORD, NIL, PAGE_READWRITE, 0, FSize, FName);
всегда возвращается 0 - т.е. ошибка (ошибка звучит как : неправильный хэндл) если
1. FName string - т.е. передаем как PChar(FName)
2. FName создается как Pchar (например через GetMem() и пр. с дальнейшим копированием из string (ноль в конце есть :)))

Работает ТОЛЬКО если указываешь:
const
 FName = "какое то конкретное имя";

Сами понимаете - гибкости никакой :(((

При трассировке (имеются ввиду случаи 1 и 2) Дельфи показывает что FName - совершенно нормальный string (т.е. безо всякого мусора)...

Кто сталкивался с таким?

Заранее благодарен!


 
BiN ©   (2005-09-29 15:59) [1]

что возвращает GetLastError?


 
Fay ©   (2005-09-29 16:29) [2]

2 Jolik ©   (29.09.05 15:41)
Если не секрет, что такое "MAXDWORD"? Видимо предполагался INVALID_HANDLE_VALUE? Ну так и надо писать...


 
Игорь Шевченко ©   (2005-09-29 16:53) [3]

Program Files\Borland\Delphi\Demos\IPCDemos\ipcthrd.pas

constructor TSharedMem.Create(const Name: string; Size: Integer);
begin
 try
   FName := Name;
   FSize := Size;
   { CreateFileMapping, when called with $FFFFFFFF for the hanlde value,
     creates a region of shared memory }
   FHandle := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0,
       Size, PChar(Name));
   if FHandle = 0 then abort;
   FCreated := GetLastError = 0;
   { We still need to map a pointer to the handle of the shared memory region }
   FFileView := MapViewOfFile(FHandle, FILE_MAP_WRITE, 0, 0, Size);
   if FFileView = nil then abort;
 except
   Error(Format("Error creating shared memory %s (%d)", [Name, GetLastError]));
 end;
end;


 
Fay ©   (2005-09-29 18:09) [4]

>> Error(Format("Error creating shared memory %s (%d)", [Name, GetLastError]));
Офигенно информативное сообщение 8)


 
Игорь Шевченко ©   (2005-09-29 18:36) [5]

Fay ©   (29.09.05 18:09) [4]

Претензии к Борланд можно выразить на их сайте :) Он у них есть :)



Страницы: 1 вся ветка

Текущий архив: 2005.12.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.141 c
1-1131039262
Ins!7t
2005-11-03 20:34
2005.12.04
Ошибка- The compiler could not find the given identifier???


2-1132068213
PAI
2005-11-15 18:23
2005.12.04
Довольно большая программа понемногу, но "подъедает" память.


2-1131997633
Дева
2005-11-14 22:47
2005.12.04
обработчик исключительной ситуации


14-1131977614
Koala
2005-11-14 17:13
2005.12.04
Нужна помощь в выборе DVD


3-1129797724
КиТаЯц
2005-10-20 12:42
2005.12.04
IB Expert SQL Executive (как правильно написать скрипт?)