我正在尝试使一些软件运行,但是我们没有安装程序(并且公司无法提供)。
自定义 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
,只要不调用后者中的函数即可。不过我不知道有这样的工具。