Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.17;
Скачать: CL | DM;

Вниз

Ошибка компиляции   Найти похожие ветки 

 
Илья Щукин   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
2-1179953765
Евгений2
2007-05-24 00:56
2007.06.17
Клавиатурный перехватчик


15-1179611606
Marser
2007-05-20 01:53
2007.06.17
Список изменений в версии Delphi 7 сравнительно с более старыми


4-1166644400
BOB16
2006-12-20 22:53
2007.06.17
менять Hint пока мышь в SysTray


2-1180437421
viper75
2007-05-29 15:17
2007.06.17
изменение параметрой на другой форме


2-1179981178
=BuckLr=
2007-05-24 08:32
2007.06.17
RichEdit - полосы прокрутки