关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

c#调用C接口时指针参数的接入

发布时间:2019-12-09 18:28:36

指针的接入有两种方式,

1.C#中的引用类型

2.C#中的指针实现

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Runtime.InteropServices;/// <summary>

    /// 离线UK操作类

    /// </summary>

    public unsafe class UK

    {

        //引用类型变量实现

        [DllImport("UK")]

        extern static int UniKey_Find(ref uint handle, ref uint s1, ref uint s2);

        [DllImport("UK")]

        extern static int UniKey_Logoff(ref uint handle);

        //[DllImport("UK")]

        //extern static int UniKey_Log_On_Secu(ref uint handle, ref char[] password);

        [DllImport("UK")]

        extern static int UniKey_Log_On_Secu(ref uint handle, char[] password);

        [DllImport("UK")]

        extern static int UniKey_Log_Out_Secu(ref uint handle);

        [DllImport("UK")]

        extern static int UniKey_Get_Com_PanFu(ref uint handdle, ref char pDriveName);

        //指针地址实现(不过要设置程序属性允许不安全代码)

        [DllImport("UK")]

        extern static int UniKey_Find(uint* handle, uint* s1, uint* s2);

        [DllImport("UK")]

        extern static int UniKey_Logoff(uint* handle);

        [DllImport("UK")]

        extern static int UniKey_Log_On_Secu(uint* handle, uint* password);

        [DllImport("UK")]

        extern static int UniKey_Log_Out_Secu(uint* handle);

        [DllImport("UK")]

        extern static int UniKey_Get_Com_PanFu(uint* handdle, char* pDriveName);

        /// <summary>

        /// 查找UKey

        /// </summary>

        /// <returns></returns>

        protected static int UKeyFind()

        {

            uint handle = 0;

            uint s1 = 0;

            uint s2 = 0;

            int result = UniKey_Find(ref handle, ref s1, ref s2);

            return result;

        }

        /// <summary>

        /// 退出Ukey

        /// </summary>

        /// <param name="handle"></param>

        /// <returns></returns>

        protected static int UKeyLogoff()

        {

            uint handle = 0;

            return UniKey_Logoff(ref handle);

        }

        /// <summary>

        /// 登陆Ukey

        /// </summa



/template/Home/Zkeys/PC/Static