![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FileMapping [D6, XP]
psa247 © (2006-01-08 12:08:00)При обращении к GlobalData^.UName иногда выдает Access Violation
*.dpr
MMFHandle:= CreateFileMapping(INVALID_HANDLE_VALUE,nil,PAGE_READWRITE,0,SizeOf(TGlobalData),MMFName);
GlobalData:= MapViewOfFile(MMFHandle,FILE_MAP_ALL_ACCESS,0,0,SizeOf(TGlobalData));
if commLine<>'reload' then
if(GetLastError = ERROR_ALREADY_EXISTS)and(Ini.ReadBool('SettingsEx','5',False))then begin
F.Bring_To_Top(GlobalData^.OurWnd);
CloseHandle(MMFHandle);
Ini.Free;
Application.Terminate;
end;
BufSize:= 256;
......
GlobalData^.OurWnd:= 0;
try
Admin:= buffer;
GlobalData^.UName:= Admin;
except
end;
RegCloseKey(Reg);
Сам GlobalData описан в главном Unit-е как:
type
PGlobalData = ^TGlobalData;
TGlobalData = packed record
OurWnd : HWND;
UName : string;
end;
В чем причина ?
psa247 (2006-01-08 16:32:00) [1]
> Fay © (08.01.06 13:30) [3]
то что string?
Fay (2006-01-08 13:30:00) [2]> UName : string;
Меня эта строка смущает. Весьма.
psa247 (2006-01-08 13:00:00) [3]
> Anatoly Podgoretsky © (08.01.06 12:50) [1]
Я просто перепугался, что неправильно работаю с MMF.
Спасибо.
Anatoly Podgoretsky (2006-01-08 12:50:00) [4]В отсутствии обработки ошибок.