让 regsvr32 忽略 DLL 依赖项

让 regsvr32 忽略 DLL 依赖项

我正在尝试使一些软件运行,但是我们没有安装程序(并且公司无法提供)。

自定义 DLL 需要注册,我们已经注册了,但它依赖于另一个 DLL - Basler 工业相机的驱动程序 ( PYLONBASE_MD_VC80.dll)。最终在网上找到了。现在需要一整套 DLL:

XERCES-C_MD_VC80_V2_7.DLL
GCBASE_MD_VC80_V2_0.DLL
GENAPI_MD_VC80_V2_0.DLL
LOG_MD_VC80_V2_0.DLL
LOG4CPP_MD_VC80_V2_0.DLL

事实证明这些都很难找到。

有没有什么方法可以让软件忽略整个PYLONBASE_MD_VC80.dll依赖关系,因为它永远不需要它(没有使用 Basler 相机)?

所有这些都是通过 Dependency Walker 发现的。

答案1

您可以编写自己的存根版本,pylonbase_md_vc80.dll导出与您需要加载的 DLL 导入的名称匹配的空函数。Dependency Walker 应该向您显示 DLL 从中导入的函数的名称pylonbase_md_vc80.dll。如果导入的名称带有后缀,则可能必须在函数中放置虚拟参数@NUMBER

或者,你也可以找到一个可以标记pylonbase_md_vc80.dll延迟加载 DLL在您拥有的 DLL 中。然后,它应该可以加载并运行,而不需要pylonbase_md_vc80.dll,只要不调用后者中的函数即可。不过我不知道有这样的工具。

相关内容