亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

C++結構體中的指針轉換成c#類型

C++結構體中的指針轉換成c#類型

C++
MYYA 2019-05-16 10:10:24
C++結構體中的指針轉換成c#類型
查看完整描述

3 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊


IntPtr

要讀取內容的時候,弄一個DWORD數組或者BYTE數組,
然后Marshal.Copy可以把這個IntPtr的內容復制到這個數組里(如果C++中這個指針是指向一個變量而不是指向多個變量,那么將數組的大小設為1即可),然后訪問數組就可以得到值了。
Marshal.Copy可以從IntPtr復制到數組或者從數組復制到IntPtr,注意復制的時候字節數不要搞錯就可以了。



查看完整回答
反對 回復 2019-05-17
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

public struct GT_DISCOVERY_INFO

{

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]

  public char[] byDevModel;

  public Int32 iDevType;

  public Int32 iPort;

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)]

  public char[] byIP;

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]  //假定GT_MACADDR_LEN=4

  public char[] byMACAddr;

  。。。。。。

};

[DllImport("xxxxx.dll")]

public static extern Int32 GT_DEV_Login(

    string pchDEVIP,

    UInt16 wDEVPort,

    string pchUserName,

    string pchPassword,

    ref GT_DEV_DEVICECFG lpDeviceInfo,

    ref Int32 error);


 




查看完整回答
反對 回復 2019-05-17
  • 3 回答
  • 0 關注
  • 1264 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號