imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 12.02.2004, 17:04     # 1
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
Незащищённый код в Delphi7.

Почему 6-я делфя не орала что он незащинёный? Как его можно написать по-другому? (чтоб он стал защищённым)
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 12.02.2004, 17:25     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Понятие unsafe code присутствует в java и .net, а вот в Delphi ни в 6-ом ни в 7-ом я такого не припомню.

Но я думаю что само определение не меняется, т.е. под unsafe code понимаются asm-вставки, а также ссылки и указатели. Программа должна работать и так, но если это жутко критично, то можешь попробовать убрать все это.
RaZEr вне форума  
Старый 13.02.2004, 12:37     # 3
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
ежели более детально подойти к проблеме то вот на какой кусок он ругается:

TM:=timetostr(time);
for i:=Length(TM) downto 1 do
if TM[i]=':' then TM[i]:='-';

я так предполагаю что в этом коде может получиться переполнение буфера, а ты как думаешь RaZEr ?
Как бы его написать чтоб не ругался, мно просто интересно, не чтобы критично.. Хотя кто знает.
На работе я поставил разные версии этой проги на 4пни и один из них тормозит. У меня появилась гепотеза что утеска памяти из-за мое программы происходит. Но не может же утечка проявиться прям с начальной загрузки виндовса. Нет. Вот поэтому решил ругательства Делфи7 пофиксить.
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 13.02.2004, 13:33     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Когда ты попытаешься присвоить значение TM[i] несуществующему элементу массива, вылетит access violation. А где ты увидел переполнение буфера?
RaZEr вне форума  
Старый 13.02.2004, 13:53     # 5
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
access violation это разве не переполнение буфера? нарно я просто непрофессиональный программист
а как же тогда можно пофиксить ?
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 13.02.2004, 13:55     # 6
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Если нет возможности проверить длинну массива , то остается только try-catch
RaZEr вне форума  
Старый 13.02.2004, 14:57     # 7
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
try-catch? А что это за зверь такой?
Как им пользоваться-то?
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 13.02.2004, 14:59     # 8
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Конструкция try-except
RaZEr вне форума  
Старый 13.02.2004, 15:21     # 9
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
а я пробовал таже хрень
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  
Старый 13.02.2004, 15:23     # 10
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
А что конкретно пишет компилятор? Т.е. дословно, а не вольный перевод.
RaZEr вне форума  
Старый 16.02.2004, 16:27     # 11
Sancho7
Member
 
Аватар для Sancho7
 
Регистрация: 20.09.2002
Адрес: MARS
Сообщения: 300

Sancho7 Нимб уже пробиваетсяSancho7 Нимб уже пробивается
RaZEr извини что напрягал тебя. Разгадка оказалась лёгкой. Ты был прав насчёт длины массива.
Я просто проинициализировал его, назначив заранее ему длину в 254 у.е
__________________
Папуас папуасу друг, товарищ и корм.
Sancho7 вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 18:35.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.