宇
宇宙神
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
mystream: TMemoryStream;
filename:string; //ini 文件路径
begin
mystream := TMemoryStream.Create;
mystream.LoadFromFile('D:/ledtest/test30/22.txt');
ClientSocket1.Socket.SendStream(mystream);
mystream.free;
end;
我单击 Button1 提示:
project project1.exe raised exception class Eaccessviolation with
message 'access violation at address 000000000 .read of address 00000000
各位大哥,这是什么原因啊?
我是错在哪里?
谢谢!
回答1:
把流指针定位到开始的位置,或者先倒入文件流再倒入内存流
回答2:
去掉 mystream.free;
SendStream后,mystream的拥有者变为Socket
回答3:
1、mystream.seek(0);首先应将内存流定位于0.
2、 ClientSocket1.Socket.SendStream(mystream);
mystream.free;
这两句有问题,你要等待ClientSocket1.Socket.SendStream发送完毕,才可以释放.
回答4:
TempStream.Position := 0;
两位大哥:
把流指针定位到开始的位置,或者先倒入文件流再倒入内存流
是什么意思?
去掉 mystream.free;
SendStream后,mystream的拥有者变为Socket
那什么时候释放呢?
我怎么知道发完了啊?
那我的程序要怎么改?
谢谢!
var
mystream: TMemoryStream;
filename:string; //ini 文件路径
begin
mystream := TMemoryStream.Create;
mystream.LoadFromFile('D:/ledtest/test30/22.txt');
ClientSocket1.Socket.SendStream(mystream);
mystream.free;
end;
我单击 Button1 提示:
project project1.exe raised exception class Eaccessviolation with
message 'access violation at address 000000000 .read of address 00000000
各位大哥,这是什么原因啊?
我是错在哪里?
谢谢!
回答1:
把流指针定位到开始的位置,或者先倒入文件流再倒入内存流
回答2:
去掉 mystream.free;
SendStream后,mystream的拥有者变为Socket
回答3:
1、mystream.seek(0);首先应将内存流定位于0.
2、 ClientSocket1.Socket.SendStream(mystream);
mystream.free;
这两句有问题,你要等待ClientSocket1.Socket.SendStream发送完毕,才可以释放.
回答4:
TempStream.Position := 0;
两位大哥:
把流指针定位到开始的位置,或者先倒入文件流再倒入内存流
是什么意思?
去掉 mystream.free;
SendStream后,mystream的拥有者变为Socket
那什么时候释放呢?
我怎么知道发完了啊?
那我的程序要怎么改?
谢谢!