我用的是DELPHI EX 编译的//源码
function TCustomWinSocket.GetLocalHost: string;
var
LocalName: array[0..255] of Char;
begin
Lock;
try
Result := '';
if FSocket = INVALID_SOCKET then Exit;
if gethostname((LocalName), SizeOf(LocalName)) = 0 then
Result := LocalName;
finally
Unlock;
end;
end;出现了如下的问题
[DCC Error] pskdjf.pas(814): E2010 Incompatible types: 'PAnsiChar' and 'array[0..255] of Char'我找了一些 贴子都没有指出具体的修改方法,大家有知道的告诉一下,谢谢
function TCustomWinSocket.GetLocalHost: string;
var
LocalName: array[0..255] of Char;
begin
Lock;
try
Result := '';
if FSocket = INVALID_SOCKET then Exit;
if gethostname((LocalName), SizeOf(LocalName)) = 0 then
Result := LocalName;
finally
Unlock;
end;
end;出现了如下的问题
[DCC Error] pskdjf.pas(814): E2010 Incompatible types: 'PAnsiChar' and 'array[0..255] of Char'我找了一些 贴子都没有指出具体的修改方法,大家有知道的告诉一下,谢谢
var
hostName : array [0..255] of char;
begin
gethostname(hostName, sizeof (hostName));
end;
产生原因:D2009的Char为宽字符WideChar,而gethostname第一个参数是PAnsiChar。
解决方法:将hostName的声明改成array [0..255] of AnsiChar;即可。