未注册的.dll与REGSVR32 - 仅在发布版(Failure to register .dl

2019-10-22 05:21发布

试图注册我使用REGSVR32创建.dll文件时,我有一个奇怪的问题。

在开发过程中一切正常,调试版本寄存器和工作正常。 现在我想创造一个发布版本,但该版本已经不登记。

REGSVR32想出了以下错误:

The module "mpegsplitter.dll" failed to load.

Make sure the binary is stored at the specified path or
debug it to check for problems with the binary or
dependent .DLL files.

The specified procedure could not be found.

一些研究把我带到了Dependency Walker中,它不告诉我这

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.

它也确实表现出对“CRTDLL.DLL”的调试版本不具有相关性(功能视图显示SOEM功能,通常应该在OLE32.DLL),颜色为red'ish。

到目前为止好,我想它的主题相关的什么的Dependency Walker显示那里。

但是,我在哪里何去何从? 我如何解决它? 任何帮助将不胜感激,已经让我忙了好几个小时了。

谢谢!

Answer 1:

我也有同样的问题。 当我比较“命令行”之间的不同(在项目属性 - >链接)发布和调试模式,我发现了“优化”选项(在项目属性 - >链接)的发布模式被开启,离子调试不。 优化车削连接在Release模式解决了这个问题



Answer 2:

有没有可能是调试版本编译时_ATL_MIN_CRT但发行版本是不是? 你可以通过设置这个Minimize CRT Use in ATL项目性质为好。



Answer 3:

我修好了它。 它实际上是被一些MinGW的库,包括我反对的ffmpeg链接的顺序引起的。 哦,多么怪异。



文章来源: Failure to register .dll with regsvr32 - only in Release build