Форум: "Игры";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
ВнизОшибка компиляции Найти похожие ветки
← →
Илья Щукин (2006-07-26 12:28) [0]Уважаемые профессионалы!
подскажите пожалуйста в чем причина ошибки компилятора -
Я пытался просто скомпилировать готовый проект, ни чего не получается. Может какая-то ошибка в самой библиотеке DirectDraw.
С DirectX всё получается.
var
NilGUID : TGUID absolute 0; // подсвечивается
затем следует это -->
[Warning] DirectDraw.pas(80): Unsafe code "(null)"
[Error] DirectDraw.pas(80): Variable name expected
[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
[Warning] DirectDraw.pas(720): Unsafe type "Pointer"
[Warning] DirectDraw.pas(732): Unsafe type "TDDSurfaceDesc_DX5"
[Warning] DirectDraw.pas(744): Unsafe type "Pointer"
[Warning] DirectDraw.pas(767): Unsafe type "TDDSurfaceDesc_DX6"
[Warning] DirectDraw.pas(779): Unsafe type "Pointer"
[Warning] DirectDraw.pas(813): Unsafe type "TDDSurfaceDesc2"
[Warning] DirectDraw.pas(825): Unsafe type "Pointer"
[Warning] DirectDraw.pas(877): Unsafe type "Pointer"
[Warning] DirectDraw.pas(879): Unsafe type "Pointer"
[Warning] DirectDraw.pas(881): Unsafe type "Pointer"
[Warning] DirectDraw.pas(883): Unsafe type "Pointer"
[Warning] DirectDraw.pas(885): Unsafe type "Pointer"
[Warning] DirectDraw.pas(907): Unsafe type "Pointer"
[Warning] DirectDraw.pas(916): Unsafe type "Pointer"
[Warning] DirectDraw.pas(919): Unsafe type "Pointer"
[Warning] DirectDraw.pas(947): Unsafe type "Pointer"
[Warning] DirectDraw.pas(956): Unsafe type "Pointer"
[Warning] DirectDraw.pas(959): Unsafe type "Pointer"
[Warning] DirectDraw.pas(989): Unsafe type "Pointer"
[Warning] DirectDraw.pas(998): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1001): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1039): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1048): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1051): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1094): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1096): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1098): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1137): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1139): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1168): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1197): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1199): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1229): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1258): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1260): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1290): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1324): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1326): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1370): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1372): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1395): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1397): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1441): Unsafe type "Pointer"
[Warning] DirectDraw.pas(1443): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4747): Unsafe type "PAnsiChar"
[Warning] DirectDraw.pas(4748): Unsafe type "PAnsiChar"
[Warning] DirectDraw.pas(4748): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4749): Unsafe type "PWideChar"
[Warning] DirectDraw.pas(4750): Unsafe type "PWideChar"
[Warning] DirectDraw.pas(4750): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4757): Unsafe type "PAnsiChar"
[Warning] DirectDraw.pas(4758): Unsafe type "PAnsiChar"
[Warning] DirectDraw.pas(4758): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4760): Unsafe type "PWideChar"
[Warning] DirectDraw.pas(4761): Unsafe type "PWideChar"
[Warning] DirectDraw.pas(4761): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4772): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4774): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4776): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4779): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4781): Unsafe type "Pointer"
[Warning] DirectDraw.pas(4783): Unsafe type "Pointer"
[Warning] DirectDraw.pas(5588): Unsafe type "Pointer"
[Warning] DirectDraw.pas(5636): Unsafe type "Pointer"
[Warning] DXCommon.pas(18): Unsafe type "PAnsiChar"
[Warning] DXCommon.pas(90): Unsafe code "@ operator"
[Warning] DXCommon.pas(93): Unsafe type "PChar"
[Warning] DXCommon.pas(96): Unsafe code "@ operator"
[Warning] DXCommon.pas(96): Unsafe code "@ operator"
[Warning] DXCommon.pas(97): Unsafe type "PChar"
[Warning] DXCommon.pas(97): Unsafe code "@ operator"
[Warning] DXCommon.pas(97): Unsafe code "@ operator"
[Warning] DXCommon.pas(112): Unsafe type "PChar"
[Warning] DXCommon.pas(127): Unsafe type "PChar"
[Fatal Error] DirectDraw.pas(5650): Could not compile used unit "DXCommon.pas"
← →
Сергей М. © (2006-07-26 12:38) [1]
> NilGUID : TGUID absolute 0; // подсвечивается
Директива absolute требует указания следующего за ней идентификатора некоей существующей переменной, а не числовой константы.
← →
RzCoDer © (2006-07-26 12:49) [2]Да как Вам сказть Илья, тут вроде чуть больше одной ошибки должно быть
← →
Don Nikola © (2006-07-26 13:38) [3]Скорее всего программа писалась под более старую версию Delphi или вообще под FreePascal. Попробуйте посмотреть readme.txt или шапку исходника, возможно там указана требуемая версия.
>Unsafe type
Это вроде бы вообще только с 7-версии появилось. Попробуйте на 3-ке или 6-ке.
← →
tButton © (2006-07-26 14:10) [4]в 3й дельфе вариантов нету =)
даже в пятой нету =)
в шестой есть =)
← →
Sapersky (2006-07-26 15:59) [5]У меня в DirectDraw.pas (от 15.09.2003) написано:
// Delphi 5 can"t handle interface in variant records
// so we have to use pointers instead (which can be type-casted into interfaces):
{$IFDEF VER130}
PDirectDrawSurface = Pointer;
{$ELSE}
{$IFDEF VER140} // D6, TP 14
PDirectDrawSurface = Pointer;
{$ELSE}
{$IFDEF VER150} // D7
PDirectDrawSurface = Pointer;
{$ELSE}
PDirectDrawSurface = IDirectDrawSurface;
{$ENDIF}
{$ENDIF}
{$ENDIF}
На самом деле вообще никакая версия Delphi не может handle interface in variant records. Т.е. следует безо всяких IFDEF написать PDirectDrawSurface = Pointer.
Если в заголовках вообще нет PDirectDrawSurface - проще скачать DirectDraw.pas поновее, на clootie.ru должно быть.
← →
Don Nikola © (2006-07-26 17:32) [6]2tButton:
Та шо вы говорите ;)
Может Variants только в 6-ке появились, а вот VariantRecords еще в 6-ке были, только не Delphi, а TurboPascal.
← →
Sapersky (2006-07-26 18:08) [7]В 6-ке они вынесены в отдельный модуль Variants.pas. До этого были в system.pas - не помню с какой версии, с 3 или 4, наверное.
Но речь, действительно, не о вариантах.
← →
tButton © (2006-07-26 23:10) [8]
> Don Nikola © (26.07.06 17:32) [6]
ну как бы... два года нас на ТП7 натаскивали, но видать решили в такую гадость не углублять
да и в литературе по ТП я подобной инфы я не слыхал
это если правильно угадал, когда декларация рекорда через case пишется?
← →
Don Nikola © (2006-07-27 00:00) [9]2tButton:
>это если правильно угадал, когда декларация рекорда через case пишется?
Ага, шестерку не нашел, на семерке проверил, все работает на ура.
Штука многим кажется не нужной, а я как-то делал свой формат файла, так проникся идеей сразу и надолго. В некоторых случаях очень удобно.
← →
miek © (2006-07-28 09:26) [10]Чтобы скомпилить этот модуль, нужно заменить так:
NilGUID : TGUID;// absolute 0;
и, как было сказано выше, так:
PDirectDrawSurface = Pointer;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2007.06.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c