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连接生物识别设备。代码仅在设备连接时才第一次起作用,但是再次运行时将不会再次连接。不知道为什么谁能帮我吗?
答案 0 :(得分:0)
我想您在第一次运行后已连接到设备。为了能够再次连接,您必须先断开连接(据《 SBXPC参考手册》了解,有Disconnect()
功能)。
否则,您可以在应用程序中控制状态,即是否已连接/断开连接并根据其运行GetSerialNumber()
。