Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2010, 22:19   #1
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию Delphi 7(10), windows 7 и DirectX

Вот хочу научится работать с DirectX в дельфи, но вот мне мешает одна фигня: DirectDraw, как использую её в коде, так ошибка выскакивает в коде DirectDraw.pas что в 10-й дельфе, что в 7-ой. Что делать ума не приложу.
Код:
 lpDDSZBufferDest            : PDirectDrawSurface; // Surface to use as Z buffer for dest
вот тут ошибка вот текст:
[DCC Error] DirectDraw.pas(173): E2154 Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
помогите разобраться.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 03.09.2010, 22:45   #2
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

С DirectX не работал, но вот что-то похожее глянь ==> тут
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 03.09.2010, 23:00   #3
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Спасибо большое, spamer! Ещё на нашем же форуме нашёл тему, там рассказал AlexBlack что надо исправить... Можно закрывать обсуждение.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 04.09.2010, 13:14   #4
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Есть разные выпуски заголовочных файлов, скачай по-новее и не парь себе мозги, у мя все работает
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 04.09.2010, 13:43   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

PDirectDrawSurface?

Вы уверены, что понимаете, что вы делаете? Может пройдёмся по-коду, во избежание?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 04.09.2010, 19:32   #6
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

GunSmoker, во избежании чего? (Я только начал изучать). В Project->Options->Directories/Conditions->Search path был прописан путь к устаревшему модулю конкретно для этого проекта, я его удалил. И установил новый скачанный, указав к нему путь, всё заработало.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 04.09.2010, 22:49   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Во избежание создания монстра, от встречи с которым программистам месяцами будут снится кошмары.

Поясняю: PDirectDrawSurface выглядит очень подозрительно, поскольку решительно намекает на такое определение:

Код:
PDirectDrawSurface = ^IDirectDrawSurface;
В нормальном коде не должно быть никаких PDirectDrawSurface. Должны быть IDirectDrawSurface.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 05.09.2010, 20:44   #8
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Вот опять началось! При компиляции модуля DDUtils.pas вылазиет такая ошибка:
[DCC Error] DDUtil.pas(239): E2010 Incompatible types: 'Char' and 'AnsiChar'
[DCC Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'ddutil.pas'
Вот тут в коде:
Код:
fh := _lopen(szBitmap, OF_READ);
Попытался сделать так:
Код:
fh := _lopen(@zBitmap, OF_READ);
или так
Код:
fh := _lopen(Addr(szBitmap), OF_READ);
или так
Код:
fh := _lopen(PAnsiChar(szBitmap), OF_READ);
Этот модуль проходит но ошибка появляется в другом модуле DXCommon.pas вот в этой строке:
Код:
result := ( (OSVersion.dwPlatformID = VER_PLATFORM_WIN32_NT) and
              (Pos('DELPHI32.EXE', AppName) = Length(AppName) - Length('DELPHI32.EXE')
вот такого содержания:
First chance exception at $75A49617. Exception class EAccessViolation with message 'Access violation at address 75A48399 in module 'KERNELBASE.dll'. Write of address 00130000'. Process Project1.exe (5608)
Ошибка уже в процессе выполнения проги. Критическая, из проги сразу выкидывает с сообщением:
RuntimeError
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi&DirectX insolent Общие вопросы Delphi 9 29.07.2010 11:28
Книга DirectX и Delphi.... Jupiter Свободное общение 8 22.08.2009 19:26
picking directX(Delphi) Mell12345678 Gamedev - cоздание игр: Unity, OpenGL, DirectX 0 04.06.2009 10:31
New Project: DirectX and Delphi Kostia Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 04.05.2008 04:27
DirectX 10 для Windows XP Noor Свободное общение 1 27.08.2007 15:54