1

我正在使用 VS2010 并且正在处理这个项目。

http://www.codeproject.com/KB/audio-video/Asio_Net.aspx

最初,我下载了演示二进制文件,它会在我的机器上崩溃。在阅读了一些评论后,它说下载源代码,构建它,(在获得 ASIO SDK 之后),它应该可以在你的机器上运行。这是正确的,在 VS 中构建它之后,它可以在该机器上运行。

当我将重建的 .exe 和 .dll 移动到另一台机器时,它会崩溃并出现与最初下载的演示二进制文件相同的错误。所以我不确定是什么原因造成的。我怎样才能使这个 C++ 二进制文件在任何机器上工作?

我是一名 C# 开发人员,大部分代码都是 C++,所以我有点不知所措。

顺便说一句,这是错误消息:

“未处理的异常:System.IO.FileNotFoundException:无法加载文件或汇编'Bluewave.Interop.Asio.dll'或其依赖项之一。找不到指定的模块。在BlueWave.Interop.Asio.Test.TestConsole .Main(String[] 参数)"

编辑:在这里找到答案:http: //msdn.microsoft.com/en-us/library/8kche8ah (v=VS.100).aspx

使用依赖walker 查找缺少的.dll。

4

2 回答 2

4

假设你的意思是你已经包含了这个 dll -Bluewave.Interop.Asio.dll那么我只能想到几个解释:

  1. 机器缺少其中一个依赖项。您可以使用Dependency Walker之类的工具来找出缺少的内容。
  2. dll 不在 exe 可以看到的位置(不太可能,但你永远不知道)。

丢失的 dll 很可能是 VC++ 运行时的一部分,而不一定是 Asio 的一部分。

在您构建它的机器上的输出文件夹中还有什么?

于 2011-09-19T13:25:44.517 回答
1

我已经从 Code Project 下载了该演示项目,我认为问题的最可能原因是缺少 Visual Studio C++ 2008 运行时依赖项。通过在机器上安装运行时可再发行包来解决这个问题。

注意:我使用Dependency Walker检查了这个 DLL 的依赖关系。你甚至可以在分析模式下运行它,这样它就会在运行时准确地告诉你哪个依赖项很麻烦。

于 2011-09-19T13:48:06.643 回答