Je reçois un AccessViolationExcpetion en appelant Marshal.PtrToStructure (intPtr, typeof (Servent)). Des idées de ce que j'ai mal fait? J'ai essayé ceci sur x64.AccessViolationException lors de l'appel de Marshal.PtrToStructure
IntPtr intPtr = NativeMethods.GetServByName(name, "tcp");
if (intPtr != IntPtr.Zero)
{
Servent servent = (Servent)Marshal.PtrToStructure(intPtr, typeof(Servent));
result = System.Convert.ToInt32(IPAddress.NetworkToHostOrder(servent.s_port));
}
else
{
throw CreateWSAException();
}
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
internal struct Servent
{
public string s_name;
public IntPtr s_aliases;
public short s_port;
public string s_proto;
}
Il serait utile que vous pouvez fournir la définition native de la structure 'Servent'; c'est-à-dire si vous y avez accès. – kbrimington