dll设备是首次连接,但不会再连接

时间:2018-12-06 10:45:46

标签: c# asp.net dll biometrics

DLL方法:

[DllImport("SBXPCDLL.dll", CallingConvention = CallingConvention.Winapi)]
static extern byte _ConnectTcpip(Int32 dwMachineNumber, ref IntPtr lpszIPAddress, Int32 dwPortNumber, Int32 dwPassWord);
public static bool ConnectTcpip(Int32 dwMachineNumber, string lpszIPAddress, Int32 dwPortNumber, Int32 dwPassWord)
{
    if (lpszIPAddress == null)
        return false;
    IntPtr string_in = Marshal.StringToBSTR(lpszIPAddress);
    try
    {
        byte ret = _ConnectTcpip(dwMachineNumber, ref string_in, dwPortNumber, dwPassWord);
        return ret > 0;
    }
    catch (Exception)
    {
        return false;
    }
    finally
    {
        Marshal.FreeBSTR(string_in);
    }
}

按钮点击事件:

protected void Button_click(object sender, EventArgs e)
{
    try
    {
        bool status = sbxpc.SBXPCDLL.ConnectTcpip(1, ip, 5005, 0);
        if (status)
        {
            bool ss = sbxpc.SBXPCDLL.GetSerialNumber(1, out ip);
            Button1.Text = "connected";
            Response.Write("success" + ip);
        }
    }
    catch (Exception ee)
    {
        Response.Write(ee);
    }
}

我使用SBXPCDLL.dll连接生物识别设备。代码仅在设备连接时才第一次起作用,但是再次运行时将不会再次连接。不知道为什么谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

我想您在第一次运行后已连接到设备。为了能够再次连接,您必须先断开连接(据《 SBXPC参考手册》了解,有Disconnect()功能)。

否则,您可以在应用程序中控制状态,即是否已连接/断开连接并根据其运行GetSerialNumber()