首页 > 解决方案 > COM 库给出问题

问题描述

我有问题。我有一个开发用于指纹读取器的 Winform。

因此,当我使用 dll 处理指纹读取器时,我会执行以下操作:

1) 我创建了对 dll 的引用

在此处输入图像描述

2)然后我添加 using 语句来使用命名空间

在此处输入图像描述

3)然后我创建一个 ZKFPEngX 对象

在此处输入图像描述

4)然后我创建该对象的一个​​实例并开始使用该实例。

在此处输入图像描述

在我的开发环境中的调试模式下,这可以完美运行。

一旦我将它打包并将程序安装到另一台电脑上,它就会在到达使用该 dll 的任何代码部分时中断。

我得到的错误是:

在此处输入图像描述

我已确保输出包含 dll,并且在安装时在应用程序目录中有 dll。

我不确定从这里到哪里寻找错误。

编辑:

我试图通过将 dll 复制到 System32 来手动注册 dll,然后尝试使用 regsvr32.exe 注册 dll

    regsvr interop.ZKFPEngControlX.dll

这会引发以下错误

在此处输入图像描述

我确实尝试注册 system32 文件中的另一个 dll ......那个工作就像一个魅力

进一步阅读后,“互联网”表明该dll不需要注册,或者更确切地说是不能。

我的问题是我现在如何使用它,为什么它会在我的开发环境中工作?

标签: c#dllcom

解决方案


我可能是错的,但是似乎没有DLL注册

Regsvr32 是一个命令行实用程序,用于注册和注销 OLE 控件,例如 Windows 注册表中的 DLL 和 ActiveX 控件。Regsvr32.exe 安装在 Windows XP 和更高版本的 Windows 中的 %systemroot%\System32 文件夹中。

Regsvr32 [/u] [/n] [/i[:cmdline]]<dllname>

  • /u - 注销服务器

  • /i - 调用 DllInstall 并传递一个可选的 [cmdline];当它与/u一起使用时,它调用dll卸载

  • /n - 不调用 DllRegisterServer;此选项必须与 /i 一起使用

  • /s——静音;不显示任何消息框

延伸阅读

如何使用 Regsvr32 工具和解决 Regsvr32 错误消息


推荐阅读