【发布时间】:2017-03-21 10:56:50
【问题描述】:
我有一个型号为IN01的ZKTeco考勤设备。我正在尝试将它与 C# windows 窗体应用程序连接起来。我在 SysWOW64 文件夹中注册了 64 位版本的 Zkemkeeper.dll。我有以下代码:
zkemkeeper.CZKEM axCZKEM1 = new zkemkeeper.CZKEM();
bool bIsConnected;
bIsConnected = axCZKEM1.Connect_Net(192.168.1.201, Convert.ToInt32(4370));
// bIsConnected = axCZKEM1.Connect_Com(Convert.ToInt32(4370), 1, 9600);
if (bIsConnected == true)
{
MessageBox.Show("Device Connected Successfully");
}
else
{
MessageBox.Show("Device Not Connect");
}
但我从其他部分得到消息:
通过ip通信或使用串口通信
使用 puTTy 我能够与 ssh 和串行端口进行通信。提前致谢。
【问题讨论】:
-
SysWOW64仅被系统用作System32的镜像,用于在 64 位操作系统上运行的 32 位进程。您不应该将 anything 放在那里.事实上,你不应该在任何系统文件夹中放任何东西。您需要的所有 dll 都应放在应用程序的文件夹中 -
把它放在你应用程序的文件夹中。
regsvr32适用于任何路径。无论如何,注册应该是您的安装人员的责任。您不应该手动复制 dll -
我也把它放在了应用程序的文件夹中,但这不起作用。它没有向我显示错误消息,但每次都返回 false。
-
当我尝试在 64 位中调试时,我从 else 部分收到消息,当我尝试使用 x86 调试时,我收到消息:Retrieving the COM class factory for component with CLSID {00853A19-BD51-419B- 9269-2DABE57EB61F} 由于以下错误而失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
标签: c#