我有一个 C# DirectShow.Net 应用程序,我想测试它在其他计算机上以发布模式运行。我如何才能确保我的程序可以在其他不包含 windows sdk 和它可用的过滤器的机器上运行?
我将不得不包括 dirctshow dll 等,但我可以对过滤器本身做些什么?
更新:我有虚拟机来运行它,但此外,我如何确保某个 Directx 过滤器在计算机上,如果不是,获取 dll 并将其从代码注册到计算机?
编辑:在我注册了 DLL 之后,我运行我的程序。它没有运行,所以我抓取 graphstudio 并将程序的图表附加到 graphstudio 并且没有连接任何过滤器,当我尝试手动连接它们时,它们拒绝连接。
编辑2:
Can you post more details about the scenario you are having problems with?
我正在运行我的应用程序,该应用程序在我的 Virtualbox VM 上的 Windows 7 32 位机器上运行。virtualbox 不允许我访问我的 USB 设备以进行流式传输,因此我注释掉了依赖它的代码。当我运行它时,过滤器不会连接。我做了一些测试并尝试在没有源的情况下重新创建图表,它们不会连接在一起,所以这实际上可能是问题所在。
OS version?
目前我正在运行 32bit XP virtualbox VM
which filters you are using?
我在用
Source -> Smart tee (capture) -> GMFBridgeSinkFilter
Smart tee (preview) -> AVI Decompressor -> Video REnderer
GMFBridgeSource -> ffdshow video encoder -> avi mux -> File writer
(w)riter 出于某种奇怪的原因必须是小写的。开发机器有 (w)riter 和 (W)riter
Which filters do you have there that you are not using?
您的意思是我在代码中放入的操作系统或过滤器上的标准并且没有连接到哪些?
You could also try with the original GraphEdit instead of GraphStudio, and you could debug your application remotely and see where it is failing exactly.
Graphedit 仅包含在完整的 windows sdk 中,在我所在的位置下载起来很痛苦。