Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
1-78926
Pepperok
2003-11-12 14:37
2003.11.24
Содержимое ListBox`a


4-79241
BFG
2003-09-25 14:06
2003.11.24
Копирование ntuser.dat


3-78750
mike_gorb
2003-11-06 10:39
2003.11.24
Accessform


1-78928
killer
2003-11-12 14:22
2003.11.24
Image и TMemoryStream


14-79146
wnew
2003-11-02 19:52
2003.11.24
г.Первомайск Луганской обл., Украина




   Наверх