Начал разработку класса для работы с pnglib. Сначала весь код был создан в Delphi но с испозьзованием только winAPI и апи самой библиотеки. Готовый код работал так как и задумывалось. Создал аналогичный Win32 проект в лазарусе. Сам код откомпилировался без ошибок в режиме {$mode delphi}. Только вот прога начала получать External: SIGSEGV. Опытным путем установил что источником служил код:
- Код: Выделить всё
type barc = array[0..0] of byte;
pbarc = ^barc;
parc = array[0..0] of ^byte;
pparc = ^parc;
var
row_pointers: png_bytepp;
data: pbarc;
- Код: Выделить всё
GetMem(row_pointers,height);
GetMem(data,row_bytes*height);
for x:= 0 to height-1 do
pparc(row_pointers)^[x]:= pointer(DWORD(data)+x*row_bytes);
пробовал заменять и алгоритм заполнения и выделение памяти на GlobalAlloc. результат тот же. Переустановка IDE не помогла.
Возможно ктонибудь подскажет метод разрешения