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

Вниз

Не работает код в Delphi XE2   Найти похожие ветки 

 
Undria   (2011-09-25 02:18) [0]

Здравствуйте.

Имеется код, который нормально работает в D2010 и в XE, но не хочет работать в XE2 (выдаёт AV). Все настройки проекта одинаковы для всех трёх версий. Код такой:

var
FList: PPointerList;

procedure TForm1.Button1Click(Sender: TObject);
var
 pc:pchar;
begin
pc:="Test";
ReAllocMem(FList, 256 * SizeOf(Pointer));
FList^[0] := pc;  // тут в XE2 AV выскакивает
ShowMessage(pchar(FList^[0]));
end;


В 2010 и XE работает и в DEBUG и в RELEASE (платформа - Win32). В XE2 - AV в любой конфигурации.

Чего в этом коде не нравится XE2?


 
Undria   (2011-09-25 02:45) [1]

В догонку: тестил на Vista SP2 и Win7 SP1 (Ultimate).  Всё - Win32 (как и target platform в проекте Delphi XE2).


 
DVM ©   (2011-09-25 10:34) [2]

В XE2 TPointerList - динамический массив, поэтому так нельзя


 
DVM ©   (2011-09-25 10:36) [3]


var
 List: TPointerList;

procedure TForm1.Button1Click(Sender: TObject);
var
 pc: PChar;
begin
 pc := "Test";
 SetLength(List, 256);
 List[0] := PChar(pc);
 ShowMessage(PChar(List[0]));
end;


 
Undria   (2011-09-28 02:04) [4]

Вот что значит работать на чужом компе, где стоят какие-то мутные триалы без исходников и хелпа, + в Инет нет возможности залезть..

Код DVM пришлось немного изменить, но теперь всё работает.

Спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.008 c
15-1316076889
ProgRAMmer Dimonych
2011-09-15 12:54
2012.01.01
ASLR - проблема в Delphi или Windows?


15-1315686587
Юрий
2011-09-11 00:29
2012.01.01
С днем рождения ! 11 сентября 2011 воскресенье


15-1316032184
Юрий
2011-09-15 00:29
2012.01.01
С днем рождения ! 15 сентября 2011 четверг


15-1316118584
Юрий
2011-09-16 00:29
2012.01.01
С днем рождения ! 16 сентября 2011 пятница


2-1316719186
dreamse
2011-09-22 23:19
2012.01.01
Сохранение списка без символов перевода каретки