Устройство Dll подключено в первый раз, но оно не будет подключаться снова - PullRequest
0 голосов
/ 06 декабря 2018

Метод 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 голосов
/ 06 декабря 2018

Вы подключаетесь к устройству после первого запуска, я полагаю.Чтобы иметь возможность подключиться снова, сначала необходимо отключиться (как я понял из «Справочного руководства SBXPC», есть функция Disconnect()).

В противном случае вы можете контролировать свое состояние в приложении, т. Е. Если вы подключены / отключены и запускаете GetSerialNumber() в зависимости от него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...