还是关于流和指针的使用的问题。(100分)

  • 主题发起人 主题发起人 crazycock
  • 开始时间 开始时间
C

crazycock

Unregistered / Unconfirmed
GUEST, unregistred user!
下面一段程序。
procedure TForm1.ACMWaveIn1Data(data: Pointer; size: Integer);
var
SendStream:TMemoryStream;
begin
SendStream:=TMemoryStream.Create;
SendStream.Read(data^,size);//这里怎么写???????????????
NMStrm1.PostIt(SendStream);
Form1.Caption:='Send Size='+IntToStr(SendStream.Size);
SendStream.Free;
end;
知道一个指针和要处理的数据的长度,想把这些内容转换成流的形式,通过NMStrm发送出去,
然后接收到后,再恢复。
请大家指教。
 
procedure TForm1.ACMWaveIn1Data(data: Pointer; size: Integer);
var
SendStream:TMemoryStream;
begin
SendStream:=TMemoryStream.Create;
SendStream.write(data^,size);//data为一指向一个内存缓冲区的指针
NMStrm1.PostIt(SendStream);
Form1.Caption:='Send Size='+IntToStr(SendStream.Size);
SendStream.Free;
end;

data可以申明如下:
var
data:^byte;

...
data:=allocmem(size);
...
获取数据
...

...
写入sendstream
...
freemem(data);
 
楼上的,能详细一些吗?我确实比较笨。
写出代码让我参考一下,好吗?分可以再加。
 
怎么没有人回答??!!
 
var
memstream:Tmemorystream;
curname:string;
buffer:array[0..80] of char;
--------------------------------
................................
len:=length(curname);
strlcopy(buffer,pchar(curname),len);
memstream.Write(buffer,len);
......................................
 
好,我去试试……
 
同意风中流云。
 
非常感谢风中流云,哎,我真笨,快来救救我,怎么把Stream再转换回原来的
String呢?
 
TStrings不是有个LoadFromStream
 
对不起,我已经回家了,没有办法再去验证大家的答案,这样吧,先发分过年再说,呵呵~
 

Similar threads

后退
顶部