第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++中的union結(jié)構(gòu)體怎么轉(zhuǎn)換成C#?

C++中的union結(jié)構(gòu)體怎么轉(zhuǎn)換成C#?

C++
陪伴而非守候 2019-03-22 19:14:52
C++中的union結(jié)構(gòu)體怎么轉(zhuǎn)換成C#? 
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗 獲得超10個贊


1

2

3

4

5

6

7

8

9

10

11

12

 [StructLayout(LayoutKind.Explicit, Size=2)]

struct TokenValue

{

[FieldOffset(0)]

[MarshalAs(UnmanagedType.U1)]

public byte _cval;

[FieldOffset(1)]

[MarshalAs(UnmanagedType.U1)]

 public byte _ival;

[FieldOffset(0)]

public ushort flags;

}



查看完整回答
反對 回復(fù) 2019-03-27
?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

        public struct dash_generic_param
        {
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 30)]
            public short[] raw_data;
        }
        //public struct dash_generic_param
        //{
        //    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        //    public ushort[] values;
        //    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 11)]
        //    public ushort[] reserved;
        //    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
        //    public ushort[] limit;
        //}
        // 結(jié)構(gòu)體按你需求,2選1
        public struct DashParamPacket {	
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 34)]
            public ushort[] raw_data;
        }
        //public struct DashParamPacket {	
        //     public ushort pre_id;
        //     public byte token;
        //     public byte r1;
        //     public dash_generic_param data;
        //     public byte major_id;
        //     public byte minor_id;
        //     public ushort r2;
        //}

        // 例如c++庫里接口名為GetPacket,DashParamPacket是c#定義的與C++中內(nèi)存對齊的結(jié)構(gòu)體
        [DllImport("xxx.dll")]
        public static extern bool GetPacket(ref DashParamPacket parm);

        static void Main(string[] args)
        {
            DashParamPacket param = new DashParamPacket(); // C#里的結(jié)構(gòu)體
            GetPacket(ref param); // 如果C++接口定義的結(jié)構(gòu)體指針,可以直接用引用

            // 如果需要轉(zhuǎn)void*使用,可以用marhal庫來回轉(zhuǎn)
            IntPtr p = In


查看完整回答
反對 回復(fù) 2019-03-27
  • 2 回答
  • 0 關(guān)注
  • 800 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號