![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что за сообщение? [D6]
Vudu © (2005-07-08 17:38:00)Delphi выдает такое сообщение при запуске проекта что оно значит и вредно ли это?
Unsafe code 'String index to var param'
примерно в таком месте
for i:=1 to Length(shifr) do
begin
shifr[i]:=chr(ord(shifr[i])+77);
end;
делаю небольшое шифрование для сохранения в файл
Vudu (2005-07-09 00:19:00) [1]Я все время забываю про эту процедуру, да и привык уже
begin...end (2005-07-08 18:57:00) [2]> Vudu (08.07.05 17:38)
> вредно ли это?
Вряд ли. Отключить можно в настройках проекта: Project -> Options -> Compiler Messages -> Warnings -> Unsafe code.
> shifr[i]:=chr(ord(shifr[i])+77)
Можно проще (хотя и с тем же warning'ом):Inc(shifr[i], 77).
Vudu (2005-07-08 18:47:00) [3]А ну да не 6 а 7, слегка ошибся.
сообщение выходит в нижнем дополнительном окошке build, на работу программы невлияет
( shifr[i] это строка ) на цикл она невлияет
Игорь Шевченко (2005-07-08 17:50:00) [4]При запуске сообщения выдает сам проект
Просто Джо (2005-07-08 17:47:00) [5].
> [1] Просто Джо © (08.07.05 17:44)
Поспешил. Невнимательно прочитал вопрос. Но, тем не менее, по поводу версии Делфи ты наверняка привел неверную информацию
Просто Джо (2005-07-08 17:44:00) [6]Что-то я очень сомневаюсь, что Делфи 6 выдает сообщение об unsafe code...
А смысл сообщения таков:
нечего в процедуру в качестве var параметра передавать индекс цикла. Потому что внутри этой процедуры ты можешь изменить его. А это есть очень и очень не гуд.
П.С. У меня на Делфи 6 такой код вообще не скомпилится:
procedure X (var Param: Integer);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to 10 do
X(I)
end;