C# 正确处理QuickTime控件
我目前正在为Windows平台开发一个能够播放快速视频的应用程序。 目标操作系统版本为Windows XP、Windows Vista和Windows 7 我成功地使用了Apple ActiveX QuickTime控件2.0(C#),并且在Windows XP上运行良好 然而,在Vista和Windows7上,我面临着正确处理控件的问题。 以下是“复制步骤”: -我在运行时动态创建快速时间控件,并将其放置在面板上C# 正确处理QuickTime控件,c#,activex,dispose,quicktime,C#,Activex,Dispose,Quicktime,我目前正在为Windows平台开发一个能够播放快速视频的应用程序。 目标操作系统版本为Windows XP、Windows Vista和Windows 7 我成功地使用了Apple ActiveX QuickTime控件2.0(C#),并且在Windows XP上运行良好 然而,在Vista和Windows7上,我面临着正确处理控件的问题。 以下是“复制步骤”: -我在运行时动态创建快速时间控件,并将其放置在面板上 我成功地用它播放视频 在某个时候,我关闭了应用程序主窗体;应用程序窗口被破坏,
- 我成功地用它播放视频
- 在某个时候,我关闭了应用程序主窗体;应用程序窗口被破坏,应用程序将继续在后台运行(执行同步视频等操作);此时,使用IDisposable模式处理控件;我无法(从ActiveX控件)显式地处理Movie对象,因为我遇到了一个异常,如:“无法使用已与其基础RCW分离的COM对象。”;我只使用(AxQTOControlLib.AxQTControl)player.Dispose();在Windows XP上,这很好,但在Vista和7上则不行
- 我恢复我的应用程序(从它在后台运行的工具栏),并尝试再次打开视频;此时抛出AccessViolationException“试图读取/写入受保护内存”
- 为什么这只发生在Vista和Windows7上
- XP上是否存在隐藏的漏洞
- 在运行时创建控件时,建议以什么方式处置该控件(及其电影对象)
所以我的修正根本不起作用 很多人似乎都有这个错误 本页提供了一种有趣的方法: 发生崩溃的原因是文件句柄仍处于打开状态。我是 通过连接空字符串从Quicktime控件“卸载”电影 指向文件名或URL属性。Quicktime不能处理这个问题 并使原始文件保持打开状态。所以我给他打了电话 实际图像文件(Quicktime也处理图像)的路径 全黑。现在一切似乎都好了
哎呀,真是糟糕透顶。试着隐藏你的表单而不是处理它。谢谢回复。我无法执行此操作,因为所有其他控件(包括控件所在的面板)都已被释放。应用程序处于成熟状态。我被要求添加此功能。所以这不是一个选择。不幸的是,我也有同样的问题