function TForm1.ssend(var Buf):integer;
var
mBuf1:^string;
begin
mBuf1:=@Buf;
listbox1.Items.Add('ssend()-->>'+mBuf1^);
end;procedure TForm1.Button1Click(Sender: TObject);
var
s1:string;
begin
s1:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
ssend(s1);
end;
在ssend()中用一个字符串指针变量,可以或得Buf的值.
请问,在ssend()函数中,我还有其它方法可以取得形参Buf的值吗?
可以这样吗?
var
mBuf2:PChar;
getmem(mBuf2,255);
mBuf2:=@Buf
var
mBuf1:^string;
begin
mBuf1:=@Buf;
listbox1.Items.Add('ssend()-->>'+mBuf1^);
end;procedure TForm1.Button1Click(Sender: TObject);
var
s1:string;
begin
s1:='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';
ssend(s1);
end;
在ssend()中用一个字符串指针变量,可以或得Buf的值.
请问,在ssend()函数中,我还有其它方法可以取得形参Buf的值吗?
可以这样吗?
var
mBuf2:PChar;
getmem(mBuf2,255);
mBuf2:=@Buf
var
mBuf1:string;
begin
mBuf1 := string(Buf);
listbox1.Items.Add('ssend()-->>'+mBuf1);
end;
说0x.....指令错误,什么什么内存0xf45621不能"read"
Send(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
于是我这样自定义:
function mySend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
mBuf:string;
begin
PopUnit.FrmPop.ListBox1.Items.Add('拦截到发送的封包');
PopUnit.FrmPop.ListBox1.Items.Add('封包大小:'+IntToStr(len));
mBuf:=string(Buf);
PopUnit.FrmPop.ListBox1.Items.Add('封包内容:'+mBuf);
mySend:=oSend(s,Buf,len, flags);
end;
可一执行就报错,不知道为什么!~~~
难道哪不对吗?
要终止程序,请..........