delphi2009的bug.TServerSocket和TClientSocket中SendText和ReceiveText方法接收乱码

delphi2009中的TServerSocket和TClientSocket控件使用的时候不知道为什么发送了数据接收的时候就变乱码了,又特地用delphi7编译了一边,就又好了.看了下控件源代码,原来是改了一部分,没改完.
delphi2009中的TServerSocket和TClientSocket控件,的SendText方法中参数被转换成了Ansistring类型,但是ReceiveText方法并未做修改,还是String类型.
打开scktcomp.pas 把
function TCustomWinSocket.ReceiveText:string;修改成如下..
function TCustomWinSocket.ReceiveText: ansistring; <<==修改
begin
SetLength(Result, ReceiveBuf(Pointer(nil)^, -1));
SetLength(Result, ReceiveBuf(Pointer(Result)^, Length(Result)));
end;
然后把单元文件到项目中编译一下.就OK了, 乱码问题解决.

 

转自:http://hi.baidu.com/osqlnvrbcnaipwr/item/fd084fdc3ae9ace355347f3b

posted @ 2013-04-01 18:10  狐狸乌鸦  阅读(779)  评论(0编辑  收藏  举报