欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

c++ c#結構體調用

2、還存在另外一種情況,是結構體中嵌套有結構體時需要做一些特殊處理,具體如下:

結構體

typedef struct {
? int ctx_num; /*/< Index to the context to use */
? int sec_level; /* < Security Level to validate frames per context based */
? int drop_maxpn; /* < Enable packet drop when max pn is reached for this context>*/
? int drop; ? ?/*/< Drop this Packet */
? int redir; ? /*/< For Egress, redirect the packet to ingress path (NDL). For Ingress, redirect the packet to alternate destination. */
? int auth_en; /*/< Encapsulate and authenticate this packet. */
? int enc_en; ?/*/< Encrypt this packet. auth_en must also be set when this bit is set. (Valid only for egress path). */
} ACT_FLD;

typedef struct {
? ACT_FLD ? *lk_act_fld; ? /*/< Action to take for an entry within a port */
} LKUP_T;

C++ 函數

uint ?msec_port_set_egr_entry (IN int port, IN int ent_num, IN LKUP_T *egr_lkup)

{

// ?

}

C#在調用時首先將相應dll import進來,進行相應結構體的定義和相應函數的聲明,具體如下:

? ? ? ? [DllImport("..\\debug\\mgd_MacSec.dll")]
? ? ? ? private static extern UInt32 msec_set_igr_gen_cfg(int port, IntPtr igr_gen);

? ? [StructLayout(LayoutKind.Sequential)]
? ? public class ACT_FLD?
? ? {
? ? ? ? public int ctx_num; /*/< Index to the context to use */
? ? ? ? public int sec_level; /* < Security Level to validate frames per context based */
? ? ? ? public int drop_maxpn; /* < Enable packet drop when max pn is reached for this context>*/
? ? ? ? public int drop; ? ?/*/< Drop this Packet */
? ? ? ? public int redir; ? /*/< For Egress, redirect the packet to ingress path (NDL). For Ingress, redirect the packet to alternate destination. */
? ? ? ? public int auth_en; /*/< Encapsulate and authenticate this packet. */
? ? ? ? public int enc_en; ?/*/< Encrypt this packet. auth_en must also be set when this bit is set. (Valid only for egress path). */
? ? ? ? public ACT_FLD()
? ? ? ? {
? ? ? ? ? ? ctx_num = 0;
? ? ? ? ? ? sec_level = 0;
? ? ? ? ? ? drop_maxpn = 0;
? ? ? ? ? ? drop = 0;
? ? ? ? ? ? redir = 0;
? ? ? ? ? ? auth_en = 0;
? ? ? ? ? ? enc_en = 0;
? ? ? ? }
? ? }?

? ? [StructLayout(LayoutKind.Sequential)]
? ? public class LKUP_T
? ? {
? ? ? ? public IntPtr lk_act_fld;

? ? ? ? public LKUP_T()
? ? ? ? {
? ? ? ? ? ? ACT_FLD lk_act_fld_s = new ACT_FLD();
? ? ? ? ? ? lk_act_fld = Marshal.AllocHGlobal(Marshal.SizeOf(lk_act_fld_s));
? ? ? ? ? ? Marshal.StructureToPtr(lk_act_fld_s, lk_act_fld, false);
? ? ? ? }
? ? }?

? ? 具體在代碼中引用時如下所示:

? ? ? ? ? ? IntPtr egr_lkup_ptr = Marshal.AllocHGlobal(Marshal.SizeOf(egr_lkup));
? ? ? ? ? ? Marshal.StructureToPtr(egr_lkup, egr_lkup_ptr, false);
? ? ? ? ? ? uint ret = _msec_port_set_egr_entry(port, ent_num, egr_lkup_ptr);
? ? ? ? ? ? egr_lkup = (LKUP_T)Marshal.PtrToStructure(egr_lkup_ptr, typeof(LKUP_T));
? ? ? ? ? ? Marshal.FreeHGlobal(egr_lkup_ptr);

?

文章鏈接: http://www.qzkangyuan.com/21895.html

文章標題:c++ c#結構體調用

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程

C#調用

2023-7-7 14:44:32

建站教程

JAVA數據結構

2023-7-11 13:54:03

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 陆川县| 朝阳区| 大化| 四平市| 哈密市| 遂宁市| 赤壁市| 樟树市| 梨树县| 江口县| 茂名市| 武邑县| 博湖县| 揭西县| 赤城县| 虞城县| 永靖县| 永嘉县| 嘉禾县| 鹤庆县| 高台县| 江阴市| 宁国市| 泰安市| 祁东县| 中宁县| 金塔县| 青海省| 观塘区| 大厂| 苗栗县| 昆明市| 鹤山市| 绥宁县| 长治县| 台中县| 荥阳市| 长丰县| 漾濞| 应城市| 鹤岗市|