当前位置:新励学网 > 秒知问答 > c#内存读写方法

c#内存读写方法

发表时间:2024-07-28 13:30:41 来源:网友投稿

代码如下

usingSystem.Runtime.InteropServices;

usingSystem.Text;

publicclassFunction

{

//C#操作内存读写方法

publicstaticbytePtrToByte(intPtr )

{

byteb = Marshal.ReadByte( ( IntPtr ) Ptr );

returnb;

}

publicstaticcharPtrToChar(intPtr )

{

byteb = Marshal.ReadByte( ( IntPtr ) Ptr );

return(char) b;

}

publicstaticshortPtrToShort(intPtr )

{

shortb = Marshal.ReadInt16( ( IntPtr ) Ptr );

returnb;

}

//C#操作内存读写方法

publicstaticushortPtrToUShort(intPtr )

{

ushortb = (ushort) Marshal.ReadInt16( ( IntPtr ) Ptr );

returnb;

}

publicstaticintPtrToInt(intPtr )

{

intb = Marshal.ReadInt32( ( IntPtr ) Ptr );

returnb;

}

publicstaticuintPtrToUInt(intPtr )

{

uintb = (uint) Marshal.ReadInt32( ( IntPtr ) Ptr );

returnb;

}

publicstaticlongPtrToLong(intPtr )

{

longb = Marshal.ReadInt64( ( IntPtr ) Ptr );

returnb;

} //C#操作内存读写方法

publicstaticulongPtrToULong(intPtr )

{

ulongb = (ulong) Marshal.ReadInt64( ( IntPtr ) Ptr );

returnb;

}

// Convert an ip address stored an address to equivalent string value

publicstaticstringGetPtrToIpAddr(intintPtr,intvarlen)

{

inti = 0;

StringBuilder sb =newStringBuilder(0,varlen*4);

byte[] byx =newbyte[varlen];

// ip address cann't have zero value C#操作内存读写方法

// ip address cann't have zero length C#操作内存读写方法

if( ( intPtr == 0 ) || ( varlen == 0 ) )return"";

Marshal.Copy( ( IntPtr ) intPtr , byx , 0 , varlen );

for( i = 0; i < varlen - 1; i ++ )

{

sb.Append(byx[i]);

sb.Append('.');

}

sb.Append(byx[varlen - 1]);

returnsb.ToString();

}

}

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!