Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Уровень кооперации - глюк


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]

Огласите весь список пожалуйста!


Наверх

Титульная страница Поиск, карта сайта Написать письмо