Главная страница
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
2-1317121653
Scott Storch
2011-09-27 15:07
2012.01.01
вопрос к знатокам СУБД DBISAM.


2-1316764003
Alex_C
2011-09-23 11:46
2012.01.01
Загрузить и выгрузить Bitmap из Stream


2-1317028812
alexdn
2011-09-26 13:20
2012.01.01
Перезаписывать тхт построчно


15-1316145972
vajo
2011-09-16 08:06
2012.01.01
Win XP. Проблема входа в систему.


15-1312403395
Юрий
2011-08-04 00:29
2012.01.01
С днем рождения ! 4 августа 2011 четверг