VC的OCX中 函数定义如下
long SendTo(long FAR* data, long length, long FAR* szDestVIP);
导入delphi后 看到的该函数 为
SendTo(var szBuffer: Integer; nLength: Integer; var szDestVIP: Integer;
nFlags: Integer): Integer;
我在delphi中调用如下:
var
sTemp :array[0..255] of Byte;
ipstr : string;
pData : Integer;
pDz : Integer;
begin
ipstr := '10.1.22.2';
for i := 0 to 255 do
sTemp[i] := i; pData :=Integer(@sTemp[0]);
pDz := Integer(@ipstr[1]);
SendTo(pData,255,pDz,0);现在遇到的是 SendTo调用成功了 但是发出的数据是sTemp数组的首地址而不是sTemp数组的数据。请问该怎么修改??请知道的朋友指点一下!~~
在VC中调用是成功了的 调用如下:
BYTE outBuffer[0x1000];
....这里省去对outBuffer数组的赋值,,,,
m_strVIP = _T("10.1.1.101");
BYTE szVip[0x40];
memcpy(szVip, LPCTSTR(m_strVIP), m_strVIP.GetLength());
SendTo((long *)outBuffer, 0x0E + nLength, (long *)szVip);
long SendTo(long FAR* data, long length, long FAR* szDestVIP);
导入delphi后 看到的该函数 为
SendTo(var szBuffer: Integer; nLength: Integer; var szDestVIP: Integer;
nFlags: Integer): Integer;
我在delphi中调用如下:
var
sTemp :array[0..255] of Byte;
ipstr : string;
pData : Integer;
pDz : Integer;
begin
ipstr := '10.1.22.2';
for i := 0 to 255 do
sTemp[i] := i; pData :=Integer(@sTemp[0]);
pDz := Integer(@ipstr[1]);
SendTo(pData,255,pDz,0);现在遇到的是 SendTo调用成功了 但是发出的数据是sTemp数组的首地址而不是sTemp数组的数据。请问该怎么修改??请知道的朋友指点一下!~~
在VC中调用是成功了的 调用如下:
BYTE outBuffer[0x1000];
....这里省去对outBuffer数组的赋值,,,,
m_strVIP = _T("10.1.1.101");
BYTE szVip[0x40];
memcpy(szVip, LPCTSTR(m_strVIP), m_strVIP.GetLength());
SendTo((long *)outBuffer, 0x0E + nLength, (long *)szVip);
该是
pData :=sTemp[0];
吧
pData: Pointer;
stemp: String;
begin
stemp := 'asdf';
pData := @sTemp;pData即为stemp的地址
pData: Pointer;
pData1: Pointer;
stemp: String;
begin
stemp := 'asdf';
pData := @sTemp; pData1 := addr(sTemp); //这个代码也可