我想弄清楚我在我的 Win XP Pro 笔记本电脑上安装了哪个 SAPI 版本。
我正在将 sapi.dll 添加到我的项目中: 项目 > 添加引用 > COM: Microsoft 语音对象库 5.0 C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.dll
如果我打开 Windows 资源管理器并导航到 C:\Program Files\Common Files\Microsoft Shared\Speech\sapi.dll,它显示版本号为 5.1.4111.0
由 Visual Studio 创建的互操作文件 (Interop.SpeechLib.dll) 显示版本号为 5.0.0.0
如果我转到“项目”>“添加引用”>“浏览”并手动浏览 dll,则没有任何区别。虽然物理 dll 显示版本 5.1.4111.0,但 Visual Studio 中的所有内容都变成版本 5.0.0.0
为什么会出现差异?
谢谢。
最佳答案
因为类型库版本与文件版本没有任何关系。库版本描述了 API 的声明接口(interface)。当做出需要重新编译程序的重大更改时,库版本会增加。
文件版本是一个实现的细节。在 XP 上可能有多个版本,比如不同的服务包或安全补丁。此处的“5.1”表示 Windows 版本号。 4.0 = Windows NT,5.0 = Windows 2000,5.1 = XP,6.0 = Vista,6.1 = Windows 7。文件版本的更改不需要重新编译您的程序。您只关心库版本。
https://stackoverflow.com/questions/8904268/