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

Вниз

Как лечить   Найти похожие ветки 

 
Aleksandr ©   (2002-08-07 15:13) [0]

Достали меня эти сообщения компилятора. В коде:

procedure TStringCollectionList.SetStr( I : integer; Value: ShortString);
begin
DisposeStr( PString( Items[I]));
Items[I] := NewStr( Value)
end;

он предупреждает, что Symbol "DisposeStr" is deprecated и Symbol "NewStr" is deprecated. Чего ему надо?

и в коде
Result := GlobalAllocPtr(HeapAllocFlags, NewCapacity)

он о HeapAllocFlags он предупреждает, что Specific to a platform. То же с unit FileCtrl. Не просто же так компилер ругается? Какими-нить дефайнами это лечить, что ли?


 
Gonza ©   (2002-08-07 15:41) [1]

Нажми F1 на этих сообщениях и он тебе поможет


 
Ученик ©   (2002-08-07 15:45) [2]

Help-Delphi Delp-Index-$WARN


 
ZrenBy ©   (2002-08-07 15:45) [3]

{$WARN UNIT_PLATFORM OFF}
и т.д и т.п.


 
Aleksandr ©   (2002-08-07 17:22) [4]

Да в курсе я их... только одна проблема - он чихать хотел на эти директивы. Все равно показывает.


 
Ученик ©   (2002-08-07 17:26) [5]

А где они поставлены ?


 
Внук ©   (2002-08-07 17:32) [6]

function NewStr(const S: string): PString;

Description

Do not use NewStr in new applications. This function is provided for backward compatibility only.

procedure DisposeStr(P: PString);

Description

DisposeStr is only provided for backward compatibility with existing code that allocated a string using NewStr. Both DisposeStr and NewStr are obsolete.

То же самое можно сказать про GlobalAllocPtr...
Поэтому не от сообщений нужно избавляться, а от подобных вызовов, IMHO


 
Aleksandr ©   (2002-08-08 12:12) [7]

2 Внук:

Во-во, именно это меня и интересовало. В том плане, что конкретно следует сделать в приведенных кодах и какие последствия это повлечет? Сорри, моего английского для толкования Хелпа не хватает. Я из него понимаю только, что методы эти - пережиток древности (а как эта программа будет работать в Windows"95 - не окажется ли, что там эта древность и нужна)?


 
Anatoly Podgoretsky ©   (2002-08-08 12:16) [8]

Да надо не с последствиями бороться, а с причинами.
А к чему приведет, ну скажем к поиску неожиданных ошибок, сказано не использовать, так будь законопослушным членом общества.


 
Ученик ©   (2002-08-08 12:46) [9]

А на что надо менять использование FileCtrl ?


 
Внук ©   (2002-08-08 13:06) [10]

Aleksandr © (08.08.02 12:12)
"а как эта программа будет работать в Windows"95 "
Термин обратной совместимости (backward compatibility) здесь имеет немного другое значение. Представь, программа написана N лет назад. Естественно, она использует вызовы устаревших функций и процедур. Если убрать их поддержку в новых ОС, то эти программы перестанут работать, например, на Win2000. Поэтому их и оставляют. По сути же эти функции представляют собой заглушки, которые либо перенаправляют вызовы новым функциям, либо не делают ничего (последнее относится к некоторым устаревшим функциям в модулях Delphi, компилятор сам вставляет необходимый код вместо вызова устаревшей функции). Новые же функции обязаны работать в любых версиях ОС, поэтому и старые программы работают в них. То есть опасения напрасны, если особо не оговорено противное.
О таких нерациональных вызовах и предупреждает компилятор. На что их менять - этот вопрос не сложен, думаю и сам справишься.



Страницы: 1 вся ветка

Текущий архив: 2002.08.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.014 c
1-60687
etho
2002-08-06 10:43
2002.08.19
Динамически создаваемые объекты?


8-60761
Vasserman
2002-04-08 16:50
2002.08.19
Новая графическая компонента


7-60874
-=Sergeante=-
2002-05-29 11:05
2002.08.19
rs485/232


1-60689
Брат
2002-08-06 09:57
2002.08.19
Компонента


3-60526
UnDISCOvery
2002-07-30 11:58
2002.08.19
Как создать автоинкрементное поле SQL-запросом ?