using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace ServerSocket
{
///
/// 記憶體處理,組織記憶體拓撲結構並定義處理函式
/// 作者:周朔鵬
/// 編寫時間:2010-6-10
///
public static class PLCStruct
{
//將結構體聲明為Struct和class其行為完全一致,但是Struct中不能用new創建對象,class中可以,但是,在此套用中創建對象沒有實際價值。
/*[StructLayout(LayoutKind.Sequential, Pack = 1)]
public class Socket_struct
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] bByte;// = new byte[20];
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public Int32[] dwDword;// = new UInt32[20];
}*/
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Socket_struct
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public byte[] bByte;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)]
public Int32[] dwDword;
}
}
public class StructToFromByte
{
public static object BytesToStuct(byte[] bytes, Type type)
{
//得到結構體的大小
int size = Marshal.SizeOf(type);
//byte數組長度小於結構體的大小
if (size > bytes.Length)
{
//返回空
return null;
}
//分配結構體大小的記憶體空間
IntPtr structPtr = Marshal.AllocHGlobal(size);
//將byte數組拷到分配好的記憶體空間
Marshal.Copy(bytes, 0, structPtr, size);
//將記憶體空間轉換為目標結構體
object obj = Marshal.PtrToStructure(structPtr, type);
//釋放記憶體空間
Marshal.FreeHGlobal(structPtr);
//返回結構體
return obj;
}
//結構體複製入byte數組
public static byte[] StructToBytes(object structObj)
{
//得到結構體的大小
int size = Marshal.SizeOf(structObj);
//創建byte數組
byte[] bytes = new byte[size];
//分配結構體大小的記憶體空間
IntPtr structPtr = Marshal.AllocHGlobal(size);
//將結構體拷到分配好的記憶體空間
Marshal.StructureToPtr(structObj, structPtr, false);
//從記憶體空間拷到byte數組
Marshal.Copy(structPtr, bytes, 0, size);
//釋放記憶體空間
Marshal.FreeHGlobal(structPtr);
//返回byte數組
return bytes;
}
}
}
相關詞條
-
韓朔[中國內地男演員]
韓朔,1982年1月25日出生於遼寧省瀋陽市,中國內地男演員。畢業於北京舞蹈學院、中央戲劇學院 。 2008年因出演甘曙光執導的電視劇《大營救》正式進入...
早年經歷 演藝經歷 主要作品 獲獎記錄 人物評價 -
韓朔
韓朔,1982年1月25日出生於北京。內地演員。
早年經歷 演藝經歷 主要作品 獲獎記錄 人物評價 -
大鵬賦
《大鵬賦》是唐代詩人李白的賦作。此賦作者以大鵬自況,把大鵬置於浩渺的天宇背景中,寫其巨大威猛,無所拘束,自由自在的脫俗神采,並以黃鵠等俗鳥形象與之作對比...
作品原文 注釋譯文 創作背景 作品鑑賞 作者簡介 -
大鵬遇希有鳥賦
《大鵬賦》是唐代詩人李白的賦作。此賦作者以大鵬自況,把大鵬置於浩渺的天宇背景中,寫其巨大威猛,無所拘束,自由自在的脫俗神采,並以黃鵠等俗鳥形象與之作對比...
作品原文 注釋譯文 創作背景 作品鑑賞 作者簡介 -
大鵬賦·並序
《大鵬賦》是唐代詩人李白的賦作。此賦作者以大鵬自況,把大鵬置於浩渺的天宇背景中,寫其巨大威猛,無所拘束,自由自在的脫俗神采,並以黃鵠等俗鳥形象與之作對比...
作品原文 注釋譯文 創作背景 作品鑑賞 作者簡介 -
趙鵬大
趙鵬大,數學地質、礦產普查勘探學家。中國地質大學教授、校長,國務院學位委員會委員。獲1992年國際數學地質協會克倫賓獎章。系統研究了礦產勘查中數學模型的...
人物簡介 個人經歷 主要成就 職業成就 服務生產 -
水調歌頭·題斗南樓和劉朔齋韻
《水調歌頭·題斗南樓和劉朔齋韻》是宋代詞人李昴英所寫的一首詞。這是一首描寫南樓景色的和詞,它想像神奇,充滿著浪漫主義的精神。作者在登高望遠時,想像瑰奇,...
原文 詩詞鑑賞 作者簡介 -
比干[商末周初歷史人物]
比干(gàn),子姓,比氏,名乾,沫邑(今河南衛輝)人。商代帝王文丁的次子,帝乙的弟弟,帝辛(商紂王)的叔叔。 比干是帝辛的叔叔,也稱王叔比干,是殷商王...
人物生平 軼事典故 親屬成員 藝術形象 比干故里 -
狄懷英[唐朝、武周政治家]
狄仁傑(630~700年),字懷英,并州太原(今山西太原市)人。唐朝武周時期政治家。 出身太原狄氏 ,早年以明經及第,歷任汴州判佐、并州法曹、大理寺丞、...
人物生平 軼事典故 人物評價 個人作品 家庭成員