Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
ВнизНепонятки с функцией 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.12.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c