1

我有一个 WPF 应用程序,其中有一个 DirectX 组件。该组件在远程桌面上不起作用——它只是显示损坏的图像。该应用程序在不使用远程桌面时运行良好。

在尝试调试问题时,我安装了 2010 年 2 月的 DirectX SDK。现在,当我在具有 SDK 和远程桌面的计算机上从另一台计算机上运行程序时,该组件工作得很好。然而,相反的做法不起作用——当应用程序在没有DirectX SDK 的计算机上运行时,尝试通过远程桌面使用应用程序(它具有损坏图像的原始问题)。

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

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


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

4

3 回答 3

2

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

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

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

于 2010-04-30T21:16:54.540 回答
0

尝试减少 RemDesk 中的性能/体验显示选项。我会从关闭位图缓存、减少颜色深度等开始。

于 2010-04-01T19:35:35.783 回答
-1

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

于 2014-03-19T17:06:52.470 回答