VB6转换为C#错误

Nig*_*ce2 0 .net c# vb6-migration

现在我将VB6项目移植到C#并继续收到此错误.似乎无法在命名空间中修复它.

问题:

//Expected class, delegate, enum, interface, or struct
public string GetHostByAddress(long addr)
{
    dynamic phe = null;
    dynamic Ret = null;
    HOSTENT heDestHost = default(HOSTENT);
    dynamic hostname = null;

    phe = gethostbyaddr(addr, 4, PF_INET);
    if (phe) {
        MemCopy(heDestHost, phe, hostent_size);
        hostname == new String[256, 0];
        MemCopy(hostname, heDestHost.h_name, 256);
        GetHostByAddress == Strings.Left(hostname, Strings.InStr(hostname, Strings.Chr(0)) - 1);
    } else {
        GetHostByAddress = WSA_NoName;
    }
}
Run Code Online (Sandbox Code Playgroud)

原始方法看起来像这样.

Public Function GetHostByAddress(ByVal addr As Long) As String

  Dim phe&, Ret&
  Dim heDestHost As HOSTENT
  Dim hostname&

    phe = gethostbyaddr(addr, 4, PF_INET)
    If phe Then
        MemCopy heDestHost, ByVal phe, hostent_size
        hostname = String$(256, 0)
        MemCopy ByVal hostname, ByVal heDestHost.h_name, 256
        GetHostByAddress = Left$(hostname, InStr(hostname, Chr$(0)) - 1)
      Else
        GetHostByAddress = WSA_NoName
    End If

End Function
Run Code Online (Sandbox Code Playgroud)

无法理解为什么它不起作用并感到沮丧.有什么建议?

Chr*_*ter 5

你正在重新发明轮子.尝试:

string ipAddress = "x.x.x.x";
string hostName = System.Net.Dns.GetHostEntry(ipAddress).HostName;
Run Code Online (Sandbox Code Playgroud)