我有一个在 Windows XP 上编译的程序,现在我正试图在 Windows 7(x86 和 x64)上运行它。该程序使用 DirectSound8 枚举机器上的所有声音设备。问题是 enumerate 函数在 Windows XP 和 Windows 7 上为驱动程序名称DirectSoundEnumerate(...)
返回不同的结果。
视窗 设备 GUID = 设备描述 = 主要声音驱动程序 司机姓名= 设备 GUID = {bd6dd71a-3deb-11d1-b171-00c04fc20000} 设备描述 = SigmaTel Audio 驱动程序名称 = sthda.sys 视窗 7 x86 设备 GUID = 设备描述 = 主要声音驱动程序 司机姓名= 设备 GUID = {4a1bd997-3986-4b7a-af02-7143e86af46c} 设备描述 = 扬声器/耳机(SigmaTel 高保真音频编解码器) 驱动程序名称 = {0.0.0.00000000}。{4a1bd997-3986-4b7a-af02-7143e86af46c} 视窗 7 x64 设备 GUID = 设备描述 = 主要声音驱动程序 司机姓名= 设备 GUID = {aaee894b-7a80-44ff-805c-8d5e12207136} 设备描述 = 扬声器/耳机(SigmaTel 高保真音频编解码器(适用于 64 位 Windows)) 驱动程序名称 = {0.0.0.00000000}。{aaee894b-7a80-44ff-805c-8d5e12207136}
上面列出的三台机器的配置与戴尔 Precision 390 相同。
从 DX9SDK_DEC2005 到“DSound.lib”的程序链接。
有谁知道为什么 Windows 7 将驱动程序名称作为 GUID 而不是驱动程序名称返回?