none
VB.NET 2008+DirectSound 9 写的录音程序在开发的电脑上运行没问题,但是一到其它电脑上运行就崩溃是怎么回事? RRS feed

  • 问题

  • 我的开发环境是:XP SP3 + VS2008 + DirectX 9 SDK(Mar. 2009),  我在 VB.NET 2008 里通过添加 .NET引用 的方式加入了Microsoft.DirectX.DirectSound 支持,看到关联的是 C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0\Microsoft.DirectX.DirectSound.dll.  然后写了一段录音的代码,在自己的电脑里调试、运行,都没问题。但是把编译出来的程序一COPY到其它电脑上运行,程序就直接崩溃报错。如果没有包含 Microsoft.DirectX.DriectSound.dll, 则报错信息是:system.io.filenotfoundexception. 我把.dll 文件copy过去,报错就变成:system.invalidoperationexception.
    想问问,用 direct9 SDK DirectSound 开发的程序,怎么才能再其它没有装 DirectX9 SDK 的电脑上运行?
    2009年8月6日 6:22

答案

  • 您好,请参考:
    http://menory.blog.51cto.com/26020/4878

    可能是一些Com组件未注册。希望有帮助!
    2009年8月6日 12:02
  • 谢谢大家的热心解答。我来结贴,因为找到问题的答案了。

    大家提的几点其实我当时都是注意了的:
    1. 所有目标电脑都已经安装了 DX9.0c, 所有不存在 DX 版本低的问题;
    2. 关于引用 Copy to Local 的问题,我也设置了的,不然就不会说 Microsoft.DirectX.DirectSound.dll 的问题

    导致问题的真正原因,是从 Jiyuan 给的链接里发现的。在我的project里,我只添加了 Microsoft.DirectX.DirectSoun 一个引用。但是我在 Jiyuan 给的链接里看到了两个引用。除了 Microsoft.DirectX.DirectSound外,还有一个Microsoft.DirectX,就是这个没添加的Microsoft.DirectX,导致了在没有安装 DirectX SDK 的机器上,因为没有Microsoft.DirectX.Dll而出现 system.invalidoperationexception 报错。所以我把 Microsoft.DirectX.DLL 加入后,问题就得到了解决。
    2009年8月7日 7:20

全部回复

  • 您好,请参考:
    http://menory.blog.51cto.com/26020/4878

    可能是一些Com组件未注册。希望有帮助!
    2009年8月6日 12:02
  • 修改引用属性,复制到本地


    http://feiyun0112.cnblogs.com/
    2009年8月7日 0:50
    版主
  • 将所有的引用修改成“复制到本地”看下如何,

    另外还可以跟踪下代码的调试信息。看具体是到哪里出了问题。


    I am Rayman Zhai
    2009年8月7日 4:15
  • 对方还是要安装比较高版本的 dx9才行的
    答案900, 目标五颗星 Aurvana Air, 音乐真的是随风飘来的 凉宫春日 永无止境的八月 你到底什么时候结束阿。。。。
    2009年8月7日 4:22
  • 谢谢大家的热心解答。我来结贴,因为找到问题的答案了。

    大家提的几点其实我当时都是注意了的:
    1. 所有目标电脑都已经安装了 DX9.0c, 所有不存在 DX 版本低的问题;
    2. 关于引用 Copy to Local 的问题,我也设置了的,不然就不会说 Microsoft.DirectX.DirectSound.dll 的问题

    导致问题的真正原因,是从 Jiyuan 给的链接里发现的。在我的project里,我只添加了 Microsoft.DirectX.DirectSoun 一个引用。但是我在 Jiyuan 给的链接里看到了两个引用。除了 Microsoft.DirectX.DirectSound外,还有一个Microsoft.DirectX,就是这个没添加的Microsoft.DirectX,导致了在没有安装 DirectX SDK 的机器上,因为没有Microsoft.DirectX.Dll而出现 system.invalidoperationexception 报错。所以我把 Microsoft.DirectX.DLL 加入后,问题就得到了解决。
    2009年8月7日 7:20