procedure TForm1.Button1Click(Sender: TObject);
var
aaa: PChar;
begin
GetMem(aaa, MAX_COMPUTERNAME_LENGTH + 1);
GetComputerName(aaa, MAX_COMPUTERNAME_LENGTH + 1);
end;执行是“GetComputerName(aaa,MAX_COMPUTERNAME_LENGTH + 1)”编译不过去提示
[Error] Unit1.pas(30): Types of actual and formal var parameters must be identical
这是为什麽,如何解决。谢谢!
var
aaa: PChar;
begin
GetMem(aaa, MAX_COMPUTERNAME_LENGTH + 1);
GetComputerName(aaa, MAX_COMPUTERNAME_LENGTH + 1);
end;执行是“GetComputerName(aaa,MAX_COMPUTERNAME_LENGTH + 1)”编译不过去提示
[Error] Unit1.pas(30): Types of actual and formal var parameters must be identical
这是为什麽,如何解决。谢谢!
var
sBuffer: PChar;
sSize: Cardinal;
begin
sSize := 255;
GetMem(sBuffer, sSize + 1);
try
if GetComputerName(sBuffer, sSize) then
label1.caption := sBuffer;
finally
FreeMem(sBuffer);
end;
end;用这段程序一定没问题
var
aaa:array 0..255 of char;
S:cardinal;
begin
s:=256;
GetComputerName(aaa, s);
end;
var
ComputerName: array [0..MAX_COMPUTERNAME_LENGTH] of Char;
nSize: DWORD;
begin
nSize := MAX_COMPUTERNAME_LENGTH;
FillChar(ComputerName, MAX_COMPUTERNAME_LENGTH, 0);
GetComputerName(ComputerName, nSize);
Result := ComputerName
end;
//取得客户端‘主机名’‘IP地址’************************************************
//==============================================================================
procedure GetClientInfo(var ClientName, IPAddress: string);
var WSAData: TWSAData;
HostEnt: PHostEnt;
begin
{no error checking...}
WSAStartup(2, WSAData);
SetLength(ClientName, 255);
Gethostname(PChar(ClientName), 255);
SetLength(ClientName, StrLen(PChar(ClientName)));
HostEnt := GetHostByName(PChar(ClientName));
with HostEnt^ do IPAddress := Format('%d.%d.%d.%d',[Byte(h_addr^[0]), Byte(h_addr^[1]), Byte(h_addr^[2]), Byte(h_addr^[3])]);
WSACleanup;
end;
你好
你写的过程中TWSAData,PHostEnt应引用哪些单元?
var
sBuffer: PChar;
sSize: Cardinal;
begin
result:='';
sSize := MAX_COMPUTERNAME_LENGTH;
GetMem(sBuffer, sSize + 1);
try
if GetComputerName(sBuffer, sSize) then
result:= sBuffer;
finally
FreeMem(sBuffer,MAX_COMPUTERNAME_LENGTH +1);
end;
end;我也来抢分哦。