![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Уровень кооперации - глюк
Evgeniy_K © (2004-07-30 20:48:00)Вот у меня вылазит странная ошибка на:
GID.SetCooperativeLevel(WindowH, DDSCL_FULLSCREEN or DDSCL_EXCLUSIVE);
При этом если делать оконный режим, то все прекрасно работает.
Текст ошибки:
Exception EAccessViolation in module xxx.exe at 00021B6E
Access violation at address 00021B6E in module 'xxx.exe'. Read address FFFFFFFF
При этом главный интерфейс (GID) точно создан и работает стабильно. WindowH - точно правильное.
Evgeniy_K (2004-07-31 11:54:00) [1]Нет, проверял.
MrAngel (2004-07-31 11:44:00) [2]А может ошибка в самом SpyError? Попробуй в ошибочной строке убрать ету функцию (SpyError).
Evgeniy_K (2004-07-30 22:15:00) [3]
GID:= nilитак есть.
...
DDEngine.EActive:= False;
AddLog('InitEngine started.');
...
GID:= nil;
GSurface:= nil;
BackSurface:= nil;
...
ScreenWidth:= 800;
ScreenHeight:= 600;
ScreenBitDepth:= 16;
...
SpyError(
DirectDrawCreateEx(nil, GID, IDirectDraw7, nil),
'DirectDrawCreateEx');
...
if Windowed then begin
...
SpyError(
GID.SetCooperativeLevel(WindowH, DDSCL_NORMAL),
'SetCooperativeLevel');
...
else begin
//CORRECT DDRAW.DLL EXCEPTION!!!
SpyError(
GID.SetCooperativeLevel(WindowH, DDSCL_FULLSCREEN or DDSCL_EXCLUSIVE),
'SetCooperativeLevel');
SpyError(
GID.SetDisplayMode (ScreenWidth, ScreenHeight, ScreenBitDepth, 0, 0),
'SetDisplayMode');
ZeroMemory(@ddsd, SizeOf(ddsd));
with ddsd do begin
dwSize:= SizeOf(ddsd);
dwFlags:= DDSD_CAPS or DDSD_BACKBUFFERCOUNT;
dwBackBufferCount:= 1;
ddsCaps.dwCaps:= DDSCAPS_PRIMARYSURFACE or DDSCAPS_FLIP or DDSCAPS_COMPLEX;
end;
...
SpyError- выводит сообщение об ошибке.
parovoZZ (2004-07-30 21:46:00) [4]А GID := nilв начале инициализации не помогает?
Тогда код в студию. Мне тоже интересно.
cyborg (2004-07-30 21:01:00) [5]Огласите весь список пожалуйста!