-
urgun (17.02.10 11:25) [0]В потоке вызываю метод другого класса через Synchronize.
В этом методе мне нужно прочитать файл в буфер, делаю так:
SendData:=TMemoryStream.Create;
SendData.LoadFromFile(filename);
BufferSize:=SendData.Size;
Buffer:=AllocMem(BufferSize);
SendData.Read(Buffer, BufferSize);
SendData.Destroy;
В этом местеSendData.Read(Buffer, BufferSize);
происходит исключение. Не пойму причину, что не так?? -
Медвежонок Пятачок © (17.02.10 11:37) [1]function Read(var Buffer; Count: Longint): Longint;
-
urgun (17.02.10 11:42) [2]
> function Read(var Buffer; Count: Longint): Longint;
Что вы хотели этим сказать? -
Медвежонок Пятачок © (17.02.10 11:46) [3]то что метод ожидает одно, а ты ему подсовываешь другое.
-
urgun (17.02.10 11:50) [4]
> то что метод ожидает одно, а ты ему подсовываешь другое.
Это я понимаю, но подскажите пожалуйста, как сделать иначе, но так чтобы прочитать весь поток в непрерывный буфер, и чтобы потом иметь указатель на этот буфер. -
Медвежонок Пятачок © (17.02.10 11:52) [5]Если это понимаешь, то передай в метод Read правильный первый аргумент.
-
urgun (17.02.10 11:56) [6]Это конечно круто, но почему то сработало так:SendData.Read(Buffer^, BufferSize);
-
Медвежонок Пятачок © (17.02.10 11:58) [7]Ты - передовой авианаводчик. (пойнтер)
Я - бомбер.
Я жду от тебя координаты цели. (адрес)
А ты мне передаешь свои координаты. (адрес пойнтера)
Я бросаю туда (по полученным от тебя координатам) бонбу, после чего ты получаешь AV.