求助大神,Microsoft.DirectX.DirectSound.dll引用的问题

vidcor 2014-02-28 02:44:16
新建一个窗口项目,什么代码都不加,运行后会出来个空白窗口,这里没什么疑问,问题是程序的窗口构造函数里加了一句后就出怪现象了,代码如下:
public form1()
{
InitializeComponent();
CaptureDevicesCollection devices = new CaptureDevicesCollection();
}
当然必要的Microsoft.DirectX.dll和Microsoft.DirectX.DirectSound.dll已经引用,运行之后程序不会出来窗口,就像进了死循环一样。加了断点,发现根本没运行到构造函数,郁闷的是也不报错。
希望高手大神解救下,感激不尽
...全文
734 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
我家波 2016-08-04
  • 打赏
  • 举报
回复
你的电脑上是不是没有麦克风或扩声器? 我也碰到过这样的问题,在笔记本上是正常的,在台式机上就不正常了
baidu_34738284 2016-07-25
  • 打赏
  • 举报
回复
谢了楼主,困扰了很久,还以为的vs2012出现问题了
lilei430381 2015-06-18
  • 打赏
  • 举报
回复
加app.config配置文件! 放在项目的根目录下面,配置文件内容为: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>
jonesmiller 2015-01-30
  • 打赏
  • 举报
回复
引用 10 楼 liuhao_boy 的回复:
我也遇到同样问题,我按下面的方法,解决了问题,贴出来分享下: useLegacyV2RuntimeActivationPolicy="true" 修改App.config文件。 <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> </configuration>
谢啦~ __________________ free c#.net qr code creator C# qr code reader
「已注销」 2014-07-30
  • 打赏
  • 举报
回复
我也遇到同样问题,我按下面的方法,解决了问题,贴出来分享下: useLegacyV2RuntimeActivationPolicy="true" 修改App.config文件。 <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" /> </startup> </configuration>
小白驿站 2014-05-22
  • 打赏
  • 举报
回复
忘记贴异常报告了: 未处理 System.IO.FileLoadException Message=未能加载文件或程序集“Microsoft.DirectX.DirectSound.dll”或它的某一个依赖项。动态链接库(DLL)初始化例程失败。 (异常来自 HRESULT:0x8007045A) Source=CLIENT FileName=Microsoft.DirectX.DirectSound.dll FusionLog="" StackTrace: 在 CLIENT.SeverForm.CmdThreadFunc() 在 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 在 System.Threading.ThreadHelper.ThreadStart() InnerException:
小白驿站 2014-05-22
  • 打赏
  • 举报
回复
.net 4.0中引用lz说的这两个dll总是发生错误,求lz指教
WayToAccept 2014-05-16
  • 打赏
  • 举报
回复
楼主,求助,我遇到了同样的问题不报错,没异常,单步调试突然就消失了……,同样引用了Microsoft.DirectX.dll和Microsoft.DirectX.DirectSound.dll,代码如下,求帮助
public void InitVoice()
        {//初始化声音相关设置:(1)捕捉缓冲区(2)播放缓冲区
            //if (!CreateCaputerDevice())
            //{
            //    throw new Exception();
            //}//建立设备对象
            try
            {
                if(!CreateCaputerDevice())
                {
                    throw new Exception("找不到设备");
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            CreateCaptureBuffer();//建立缓冲区对象
            CreateNotification();//设置通知及事件
            //======(2)==============
            if (!CreatePlayDevice())
            {
                throw new Exception();
            }
            CreateSecondaryBuffer();
        }
private bool CreateCaputerDevice()
        {
            System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");
            //首先要玫举可用的捕捉设备
            CaptureDevicesCollection capturedev = new CaptureDevicesCollection();
            Guid devguid;
            if (capturedev.Count > 0)
            {
                devguid = capturedev[0].DriverGuid;
            }
            else
            {
                //System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");
                return false;
            }
            //利用设备GUID来建立一个捕捉设备对象
            capture = new Capture(devguid);
            return true;
        }
第一个if那里出问题了, CreateCaputerDevice没执行,不知道为什么
vidcor 2014-03-06
  • 打赏
  • 举报
回复
终于解决了,原来差了个app.config文件
vidcor 2014-03-02
  • 打赏
  • 举报
回复
其实 之前写过录音的程序,完全木问题,已经能实现录音功能了,这次想写另一个,代码基本都是复制粘贴的,就出了这样问题,实在是不明白问题在哪啊!! 加断点后, 发现运行到 Application.Run(new Form1()),程序就停了,不执行窗口的构造函数 窗体显示不出来,而且也不报错
vidcor 2014-03-02
  • 打赏
  • 举报
回复
引用 2 楼 chz415767975 的回复:
兄弟你启动的form窗体检查下
如何检查,不明白你的意思
wind_cloud2011 2014-03-02
  • 打赏
  • 举报
回复
CaptureDevicesCollection devices = new CaptureDevicesCollection(); // 枚举音频捕捉设备 http://hi.baidu.com/qdseashore/item/d462b6fd08f39d773c198b10 http://social.msdn.microsoft.com/Forums/en-US/ffae8aef-6e7a-4f6a-9936-7a0c97a74277/c-directsound-test?forum=233
霜寒月冷 2014-03-02
  • 打赏
  • 举报
回复
兄弟你启动的form窗体检查下
vidcor 2014-03-02
  • 打赏
  • 举报
回复
没有人会么,还是说的不够清楚?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧