首页 新闻 搜索 专区 学院

Microsoft.DirectX.dll和Microsoft.DirectX.DirectSound.dll引用的问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2014-05-26 16:20

正在用wpf做一个语音聊天的东西。需要引用这两个类库,添加了引用之后,程序运行没报错,但是出现假死。单步调试到此处

try
            {
                if(!CreateCaputerDevice())
                {
                    throw new Exception("找不到设备");
                }
            }

其中

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()没有被调用(对话框没被输出,没有进入这个函数),但是程序就卡在这,没有异常,也没有报错,且无法继续单步执行,很奇怪。如果把CreateCaputerDevice()里的代码注释掉,只留下return true则正常。想求教大家,这到底是怎么回事?

胡书培的主页 胡书培 | 初学一级 | 园豆:158
提问于:2014-05-16 20:36
< >
分享
所有回答(3)
0

System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");

这句别注释,别的都注释掉看看能不能弹出。

Firen | 园豆:5483 (大侠五级) | 2014-05-16 21:44

试过了,不能弹出

支持(0) 反对(0) 胡书培 | 园豆:158 (初学一级) | 2014-05-16 21:45

试过了,能弹出。刚才多敲了一个字。如果函数里只剩一个System.Windows.Forms.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");return true;也是可以执行的,对话框可以弹出。

支持(0) 反对(0) 胡书培 | 园豆:158 (初学一级) | 2014-05-16 21:47
0


System.Windows.MessageBox.Show("当前没有可用于音频捕捉的设备", "系统提示");

wpf的MessageBox不在Froms命名空间下,那个是winfrom程序用的

刘宏玺 | 园豆:14006 (专家六级) | 2014-05-17 01:52

去掉之后还是出问题,卡在这一句了

CaptureDevicesCollection capturedev = new CaptureDevicesCollection();

支持(0) 反对(0) 胡书培 | 园豆:158 (初学一级) | 2014-05-28 15:47
0

楼主这个问题是什么问题啊?我也遇到了~

李李木子 | 园豆:212 (菜鸟二级) | 2015-02-12 09:41

没有解决啊

支持(0) 反对(0) 胡书培 | 园豆:158 (初学一级) | 2015-02-14 12:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册