DirectX应用程序无法通过远程桌面工作

时间:2010-04-01 19:28:33

标签: debugging directx remote-desktop

我有一个WPF应用程序,里面有一个DirectX组件。此组件无法在远程桌面上运行 - 它只显示损坏的图像。不使用远程桌面时,该应用程序正常工作。

在尝试调试问题时,我安装了2010年2月的DirectX SDK。现在,当我在计算机上使用SDK和远程桌面从一台单独的计算机上运行该程序时,该组件工作正常。但是相反的方法不起作用 - 当计算机在没有 DirectX SDK的情况下运行时,试图在远程桌面上使用该应用程序(它具有损坏图像的原始问题)。

我已经在运行SDK机器上的应用程序和非SDK机器之间比较了加载的DLL(使用Process Explorer)。它们都加载了相同的DLL版本。

还有什么可能导致这种行为?


编辑:我发现实际上的应用程序正在加载不同的DLL。我没注意到因为我没有正确捕获DLL列表。当我在带有SDK的机器上运行应用程序时,它会加载D3DREF9.dll,即DirectX参考光栅器。这给了我一个关于问题是什么的线索,虽然我还在研究解决方案。

3 个答案:

答案 0 :(得分:2)

事实证明我正在维护的应用程序试图创建一个DirectX硬件设备,如果失败,它会尝试创建一个参考设备,最后,如果这两个都失败了,它会创建一个软件设备

默认情况下,系统上没有可用的参考或软件渲染器。要获得Reference渲染器,必须安装DirectX SDK - 并且您只应该将其用于调试,而不是部署。对于软件渲染器,系统只需要.NET 3.5 SP1,然后软件必须加载它。

基本上我认为问题在于软件无法正确创建渲染设备。我已经清理了初始化代码,它现在通过远程桌面呈现就好了。

答案 1 :(得分:0)

尝试降低RemDesk中的性能/体验显示选项。我首先关闭位图缓存,减少颜色深度等。

答案 2 :(得分:-1)

针对本机远程桌面功能的设计禁用了DirectX硬件加速:http://support.microsoft.com/kb/260565