Главная страница
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.013 c
15-1314702451
Sergey Masloff
2011-08-30 15:07
2012.01.01
Ну че ворлд тур приближается. Кто идет, я буду


2-1316667091
JamesQ
2011-09-22 08:51
2012.01.01
Word+Delphi


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


2-1316568187
Юзернейм
2011-09-21 05:23
2012.01.01
sysenter


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