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

Вниз

Проблема, черт возьми!!!!!!!!!!!!!!!   Найти похожие ветки 

 
OpenGL   (2003-11-13 10:19) [0]

Интересный форум, пока я писал ответ, мой вопрос как-то бесследно исчез... Забавно. Итак все заново:

type
TChHeader = packed record
_Type:WORD;
Size:DWORD;
end;

TChunkData = array of WORD;
PChunkData = ^TChunkData;

TChunk = packed record
Header:TChHeader;
Data:PChunkData;
end;
PChunk = ^TChunk;

TDSFile = class
private
dsFile:File;
FFileSize:cardinal;
ChunkH:TChHeader;
Chunk:TChunk;
....
и т.д.

procedure TDSFile.ReadChunk;
begin
BlockRead(dsFile, Chunk.Header, CHUNKH_SIZE);
New(Chunk.Data);
BlockRead(dsFile, Chunk.Data^, Chunk.Header.Size - CHUNKH_SIZE);
CurrOffset:=FilePos(dsFile);
end;

function TDSFile.ReadFile(Scene:pScene):HRESULT;
begin
BlockRead(dsFile, ChunkH, 6);
if ChunkH._Type <> CHUNK_MAIN then
begin
Result:=E_FAIL;
Abort;
end;

FFileSize:=ChunkH.Size;
Seek(dsFile, MAIN_OFFSET);
CurrOffset:=FilePos(dsFile);

while CurrOffset < FFileSize do
begin
ReadChunk;
case Chunk.Header._Type of
CHUNK_OBJMESH: ShowMessage("OBJ");
CHUNK_VIEWPORT: ShowMessage("VIEW");
CHUNK_KEYFRAMER:ShowMessage("KEY");
end;
end;
end;

Проблема возникает во время чтения CHUNK_KEYFRAMER, выдает access violation, перед этим CHUNK_OBJMESH чудесно читается. Я запускал программу в отладке, с процедурой ReadChunk() никаких проблем не наблюдалось, ошибка возникает на строчке CHUNK_KEYFRAMER:
ShowMessage("KEY");

Кто не верит могу весь исходник привести.

>Digitman
Извиняюсь, в прошлый раз я привет кусок старого и нового кода, раньше процедура действительно была функцией.


 
Vorobyev Sergey ©   (2003-11-13 10:39) [1]

Такие ошибки возникают из-за бесконтрольного использования выделения/освобождения памяти..
Советую проверить правильно ли используются функции выделения/освобождения памяти: New(), Delete(), SetLength(), TObject.Create(), Obj.Free(), Malloc, Realloc ну и в этом же духе.., проверь все, какие ты используешь..
Освобождается ли память везде, где ее выделяешь..

Желаю успехов!


 
panov ©   (2003-11-13 10:41) [2]

Оформляй вопрос правильно.



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

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

Наверх




Память: 0.47 MB
Время: 0.022 c
14-79137
ZeroDivide
2003-10-31 13:05
2003.11.24
Кто как себя заставляет писать прогу, если она кошмарно скушная?


14-79147
Linda
2003-10-31 12:01
2003.11.24
Никто не хочет меня...


14-79132
aclon
2003-11-01 09:41
2003.11.24
появились на экране тёмные и светлыеполосы


14-79126
Ketmar
2003-10-31 14:01
2003.11.24
официально обявляю об оживлении


3-78753
Erden
2003-11-03 12:18
2003.11.24
Хранимая процедура