新聞中心
這里有您想知道的互聯(lián)網營銷解決方案
C#結構體指針的定義及使用詳解
在解析C#結構體指針前,必須知道C#結構體是如何定義的。在c#中同樣定義該結構體。

十載的聊城網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網整合營銷推廣的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整聊城建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)公司從事“聊城網站設計”,“聊城網站推廣”以來,每個客戶項目都認真落實執(zhí)行。
C#結構體指針之C#結構體的定義:
- [StructLayout(LayoutKind.Sequential)]
- public struct VGAStat
- {
- public int ChannelNum;//通道數量
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
- public char[] Version;//版本信息
- public uint CPUUsage;//CPU占用
- public bool WorkStatusOk; //工作狀態(tài)
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public tagCheckArg[] ChannelStatistic;//通道信息
- }
定義完結構體后,就可將接收到的C#結構體指針轉換為定義的結構體對象。
- VGAStat entries = (VGAStat)Marshal.PtrToStructure(iptr, typeof(VGAStat));
- //iptr為接收到的非托管的結構體指針。
反之,也可將結構體賦值后封送到非托管內存。
假如vga為定義后實例化并賦值了的結構體。
- IntPtr intptr = Marshal.AllocHGlobal(Marshal.SizeOf(vga));
- Marshal.StructureToPtr(vga, intptr, true);
- //在此發(fā)送intptr指針給目的方
- Marshal.FreeHGlobal(intptr);//釋放分配的非托管內存。
C#結構體指針的定義及使用的相關內容那個就向你介紹到這里,希望對你了解和學習C#結構體指針有所幫助。
當前名稱:C#結構體指針的定義及使用詳解
轉載來源:http://www.5511xx.com/article/djidhdc.html


咨詢
建站咨詢
