无法打开包含文件dplay8.h。没有这样的文件或目录

问题描述:

我们正在将directx9转换为directx10,并且出现错误:无法打开包含文件:dplay8.h。 请提供解决方案如何解决此问题以及从directx9转换为direct10所需的步骤。无法打开包含文件dplay8.h。没有这样的文件或目录

DirectPlay是不推荐使用的遗留组件。旧版DirectX SDK的最新版本包括它的标题是2007年8月。请参阅DirectX SDKs of a certain age。它在任何Windows SDK中都不可用。

它仅存在于今天的Windows操作系统中,仅适用于appcompat。请记住一些重要限制:

  • DirectPlay语音在Windows Vista或更高版本的操作系统上不受支持。见KB970978

  • 的NAT辅助对象是不支持在Windows Vista或更高版本

  • 在Windows 8.x中和Windows 10,DirectPlay的是一个可选的Windows功能,所以它不是存在默认情况下。它必须由用户启用。

总之,你不应该使用它。您应该计划重写该移植项目的多人游戏支持,或者将其删除。

当网络是一个复杂且不断发展的世界时,DirectPlay的主要价值又回来了:调制解调器播放,头对头串行端口,IPX/SPX,调制解调器上的TCP/IP和TCP/IP。此时,TCP/IP是唯一重要的网络解决方案,因此直接使用WinSock更为可取。对于现代游戏需要考虑的UDP(数据报)与TCP(虚拟线路)的使用,还存在一些安全隐患。 DirectPlay的大厅机制也非常过时。

有许多现代游戏服务(如Xbox LIVE,Valve's Steam等),旨在提供现代多人游戏所必需的匹配,NAT穿越和其他功能。您将WinSock与特定于服务的库结合使用。

In a related note, there is absolutely no reason to use DirectX 10. DirectX 11 supports much more hardware , is supported on all the same operating systems (Windows Vista SP2+), and has numerous replacements for legacy support libraries that don't exist for Direct3D 10.