1
스트림에서 읽고 버퍼를 OleVariant
(VarArray) 변수에 넣어야합니다.어떻게 TStream에서 오는 Olevariant 변수에 값을 할당 할 수 있습니까?
var
MemoryStream : TMemoryStream;
Data : OleVariant;
begin
MemoryStream:=TMemoryStream.Create;
try
FuncFill(MemoryStream); //Filling the stream
MemoryStream.Seek(0,0);
MemoryStream.Read(Data, MemoryStream.Size);//this line lock tha app, i need allocate the memory for the OleVariant variable?
finally
MemoryStream.Free;
end;
end;
문제는 내가 olevariant
변수에 TMemoryStream
에서 읽혀질 값을 할당 할 수있는 방법인가?
난 당신이 OleVariant에 데이터에 대한 포인터를 얻기 위해 VarArrayLock
기능을 사용하고이 포인터로 읽을 수있는 델파이 5
데이터를 올바른 크기의 배열로 설정해야합니다! 그래서 먼저'Data : = VarArrayCreate ([0, MemoryStream.Size - 1], varByte);'를 실행하고'DataPtr : = VarArrayLock (Data);를 계속 진행하십시오. –
감사합니다. 코드가 편집되었습니다. – RRUZ