1

大家早上好,

我是 C# 新手,我必须更新一个已经开发的应用程序,我打算在其中添加一些新功能。我已经在 Visual Studio 2012 中打开它并重建它,显然没有错误。当我运行它时,GUI 显示正确,但是当我启动应用程序时出现错误:

MccDaq.dll 中出现“System.DllNotFoundException”类型的第一次机会异常 MccDaq.dll 中出现“System.DllNotFoundException”类型的未处理异常附加信息:无法加载 DLL“cbw32.dll”:指定的模块无法成立。(来自 HRESULT 的异常:0x8007007E)

这两天我一直在寻找解决方案,但我没有找到任何解决方案。在许多其他人中,我发现了这个线程(Unable to load DLL (Module could not be found HRESULT: 0x8007007E)),不幸的是我没有运气。事实上,在搜索上述 DLL(“cbw32.dll”)时,我无法在文件中的任何位置找到它。此外,正如线程中所指出的,我已经安装了 Dependency Walker,并分析了“MccDaq.dll”(发生 System.DllNotFoundException 的文件),其中再次出现错误:

错误:发现具有不同 CPU 类型的模块。警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。

谷歌搜索带来的新东西很少或没有什么新东西,除了很明显,我在几个 DLL 中的 CPU 架构存在问题,所以我在这里。我必须再次强调我是 C# 新手,所以这里出现一些新手错误也就不足为奇了。不过,这是在 Visual Studio 中触发错误的代码块:

public ErrorInfo StartBoard(MccDaq.ErrorReporting r, MccDaq.ErrorHandling h) {

        //only create another object if the configs are different
        if((daqBoard == null) || (daqBoard.BoardNum != boardNum)) {

            daqError = MccDaq.MccService.ErrHandling(r, h);
            daqBoard = new MccDaq.MccBoard(boardNum);
            daqError = daqBoard.DConfigPort(portNum, direction);
        }

        return daqError;
    }

这里可能很重要的另一个细节是这个应用程序是在大约 4.5 年前制作的,所以我猜它必须使用 Visual Studio 2008 进行编程。关于这一点,我在项目属性中更改了“目标” Framework:" 到 .NET Framework 3.5,同样没有成功:行为没有改变。

最后,我找到了许多不同的方向,这让我感到困惑。如果有人能就此启发我,我将不胜感激。

4

0 回答 0