2012-01-25 302 views
3

我正在查看新到的代码。我在一个名为UI的项目中使用了C++代码,其中包含许多依赖项,这些依赖项构建正确,并且不会返回任何错误。在Visual Studio 2008的相同解决方案中,我创建了一个新的C#windows窗体项目,并添加了对UI项目生成的dll的引用,并添加了“using”语句。我想要做的是提高在UI项目中定义的一个对话框,让我有这样System.IO.FileNotFoundException未处理消息=“指定的模块找不到。 (来自HRESULT的异常:0x8007007E)“

UIDialog uIDialog = new UIDialog(); 
uIDialog.Show(); 

它建立的代码。

当我在调试中运行我的项目时,当它到达“新”部分时,我得到上述异常 - 没有关于缺少模块的信息。

有没有什么办法找出缺少的模块是什么,而无需挖掘UI项目中的代码?我试图改写这个问题,以便它不会被关闭,如果有人能够给出明确的答案:“不,没有”,我会觉得这非常有帮助。谁关闭了以前的版本)

编辑:

System.IO.FileNotFoundException occurred 
    Message="The specified module could not be found. 
(Exception from HRESULT: 0x8007007E)" 
    Source="ui" 
    StackTrace: 
    at ui.UIDialog.Startup() 
    at ui.UIDialog..ctor() in c:\..\ui\UIDialog.h:line 61 
InnerException: 

这就是问题所在,有没有有用的信息,在任何地方明显!

这不是一个32/64位的问题 - 在来到这里之前,我有典型的“BadImageFormatException”,所以为了过去我强迫所有的东西都是32位。

+1

该异常消息中应该包含一个堆栈跟踪。发布这可能会让我们更接近找出问题所在。另外,只要看看你提供的内容,我就会一窍不通,猜测它是一个32位和64位的问题。任何机会,一个程序集编译为32位,另一个为64位/任何CPU? 32位代码无法调用64位代码,反之亦然。 –

+0

我同意@Cody。听起来像是平台目标问题。异常通常会提供更多的信息,因此将exception.ToString()的结果发布到您的问题应该有助于诊断问题。 –

+0

我讨厌说明显而易见的事情,但是第61行的'UIDialog.h'说了些什么? – Gabe

回答

1

您可以在引用的dll上使用MSIL反汇编程序,并检查清单中是否存在dll的所有依赖关系。反汇编程序是Windows SDK工具的一部分。

或者总是有DependencyWalker,虽然我多年没有使用它。

+0

手动检查所有的依赖关系是我试图避免的(尽管这是我最后做的)。虽然谢谢! – Melanie

相关问题