新聞中心
在解析C#結(jié)構(gòu)體指針前,必須知道C#結(jié)構(gòu)體是如何定義的。在c#中同樣定義該結(jié)構(gòu)體。

十載的聊城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整聊城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“聊城網(wǎng)站設(shè)計(jì)”,“聊城網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
C#結(jié)構(gòu)體指針之C#結(jié)構(gòu)體的定義:
- [StructLayout(LayoutKind.Sequential)]
- public struct VGAStat
- {
- public int ChannelNum;//通道數(shù)量
- [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;//通道信息
- }
定義完結(jié)構(gòu)體后,就可將接收到的C#結(jié)構(gòu)體指針轉(zhuǎn)換為定義的結(jié)構(gòu)體對(duì)象。
- VGAStat entries = (VGAStat)Marshal.PtrToStructure(iptr, typeof(VGAStat));
- //iptr為接收到的非托管的結(jié)構(gòu)體指針。
反之,也可將結(jié)構(gòu)體賦值后封送到非托管內(nèi)存。
假如vga為定義后實(shí)例化并賦值了的結(jié)構(gòu)體。
- IntPtr intptr = Marshal.AllocHGlobal(Marshal.SizeOf(vga));
- Marshal.StructureToPtr(vga, intptr, true);
- //在此發(fā)送intptr指針給目的方
- Marshal.FreeHGlobal(intptr);//釋放分配的非托管內(nèi)存。
C#結(jié)構(gòu)體指針的定義及使用的相關(guān)內(nèi)容那個(gè)就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#結(jié)構(gòu)體指針有所幫助。
網(wǎng)站題目:C#結(jié)構(gòu)體指針的定義及使用詳解
瀏覽路徑:http://m.fisionsoft.com.cn/article/djidhdc.html


咨詢
建站咨詢
