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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2008, 14:21   #1
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию Не компилируется модуль

Я решил почитать Графика DirectX в Delphi М.Краснова, и немного подучиться, но Delphi не хочет компилировать модуль DirectDraw.pas, который был приведен в книге. Я не знаю, че делать, помогие пожалуйста
Вложения
Тип файла: rar DirectDraw.rar (26.6 Кб, 41 просмотров)
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 23.08.2008, 17:04   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Привели бы еще номера строк, в которых ошибки.
И какая версия Delphi

Код:
// исправьте здесь
var
  NilGUID : TGUID = ''; //absolute 0;  (по моему так)

// и здесь
....
{$ELSE}
  PDirectDrawSurface = Pointer; // IDirectDrawSurface;
{$ENDIF}
после этого в 10-ке компилируется
alexBlack вне форума Ответить с цитированием
Старый 24.08.2008, 18:55   #3
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Блин, к сожалению не дома я.
Я работаю в Delphi 7.
Ошибка где-то тут была(кажется):
Код:
    1: (
      lpDDSZBufferDest            : PDirectDrawSurface; // Surface to use as Z buffer for dest
      dwZSrcConstBitDepth         : DWORD;     // Bit depth used to specify Z constant for source
      case integer of
      0: (
        dwZSrcConst               : DWORD;     // Constant to use as Z buffer for src
       );
      1: (
        lpDDSZBufferSrc           : PDirectDrawSurface; // Surface to use as Z buffer for src
        dwAlphaEdgeBlendBitDepth  : DWORD;     // Bit depth used to specify constant for alpha edge blend
        dwAlphaEdgeBlend          : DWORD;     // Alpha for edge blending
        dwReserved                : DWORD;
        dwAlphaDestConstBitDepth  : DWORD;     // Bit depth used to specify alpha constant for destination
        case integer of
        0: (
          dwAlphaDestConst        : DWORD;     // Constant to use as Alpha Channel
         );
        1: (
          lpDDSAlphaDest          : PDirectDrawSurface; // Surface to use as Alpha Channel
          dwAlphaSrcConstBitDepth : DWORD;     // Bit depth used to specify alpha constant for source
          case integer of
          0: (
            dwAlphaSrcConst       : DWORD;     // Constant to use as Alpha Channel
          );
Что то было типа не совместимость типов.
Если не изменяет мне память то вроде бы эта строка:
lpDDSZBufferSrc : PDirectDrawSurface;
или вот эта:
lpDDSAlphaDest : PDirectDrawSurface;
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 27.08.2008, 19:17   #4
Лубышев
Участник клуба
 
Аватар для Лубышев
 
Регистрация: 23.07.2007
Сообщений: 1,054
По умолчанию

Извините, за предыдущее
Вот ошибка какая:
строка:
Код:
lpDDSZBufferDest            : PDirectDrawSurface; // Surface to use as Z buffer for dest
Компилятор пишет:
[Warning] DirectDraw.pas(85): Unsafe type 'TRefGUID'
[Warning] DirectDraw.pas(168): Unsafe type 'TDDBltFX'
[Error] DirectDraw.pas(173): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Error] DirectDraw.pas(180): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Error] DirectDraw.pas(190): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Error] DirectDraw.pas(197): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Error] DirectDraw.pas(209): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Warning] DirectDraw.pas(475): Unsafe type 'TDDPixelFormat_DX5'
[Warning] DirectDraw.pas(512): Unsafe type 'TDDPixelFormat_DX6'
[Warning] DirectDraw.pas(579): Unsafe type 'TDDOverlayFX'
[Error] DirectDraw.pas(590): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
[Error] DirectDraw.pas(592): Type 'IDirectDrawSurface' needs finalization - not allowed in variant record
.... и так далее.
Писано по д'Эльфийски
Лубышев вне форума Ответить с цитированием
Старый 27.08.2008, 19:24   #5
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Не пробовали исправить как в посте #2 ?
В 7-ке те-же исправления.
Вложения
Тип файла: rar DirectDraw.rar (34.4 Кб, 123 просмотров)

Последний раз редактировалось alexBlack; 27.08.2008 в 19:38.
alexBlack вне форума Ответить с цитированием
Старый 02.02.2012, 03:28   #6
MAMOHT128
 
Регистрация: 15.01.2012
Сообщений: 5
По умолчанию

Цитата:
Сообщение от alexBlack Посмотреть сообщение
Не пробовали исправить как в посте #2 ?
В 7-ке те-же исправления.
Delphi XE2 теже грабли
пост 2 помог
MAMOHT128 вне форума Ответить с цитированием
Старый 11.03.2013, 15:40   #7
Sladkii_marmalad
Новичок
Джуниор
 
Регистрация: 07.06.2011
Сообщений: 1
По умолчанию

Ребята!!!Огромное спасибище))))Решили всю проблему разом)))
Спасибо спасибо и еще раз спасибо)
Sladkii_marmalad вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
delphi. Не компилируется! dimple Помощь студентам 2 30.04.2008 11:00
не компилируется исходник на FASM pro-john Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 15.01.2008 18:40
Не компилируется исходник deathsurgut Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 20.09.2007 20:15
Не компилируется исходник steck Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 32 30.07.2007 11:55