文章目录
概述
本文主要介绍了VS集成开发环境中,帮助文档MSDN的安装和使用方法,包括VS2015的MSDN离线安装、VS2017的MSDN在线安装,MSDN的一般使用方法,如何在VS中跳转Qt帮助等,也记录了少许MSDN使用过程中的问题和处理方法。MSDN(Microsoft Developer Network)是由微软提供的开发者资源平台,为开发人员提供了广泛的技术文档、示例代码、开发工具、论坛和培训资源。尤其是对于Windows程序开发者,MSDN是至关重要的,无论是初学者还是有经验的开发人员,都可以从MSDN中获取到有价值的信息和资源。
历史201907:
本文草稿积压了好几年。起草该文时,是因为当时的项目中,使用Qt线程和套接字实现的通信功能,存在较明显的性能瓶颈,须用WinAPI接口重新实现,多年不用,十分生疏...
VS2015MSDN离线安装
离线安装包下载和安装。看见过几篇用U盘系统工具来实现MSDN安装的帖子;但当前办公环境并不允许插优盘...
离线MSDN的下载
早就记不清楚 VS2015 的 MSDN 离线安装包,是从哪里下载到的了,只知道个人百度网盘里有备份可用,提取码:CSDN。但我不死心,总想着能在微软的官网上找到 VS2015Document 它的一丝痕迹。后来在微软的learn网站上,搜索到了 Visual Studio 2015 文档 这篇文章,文中提到,
自 2020 年 10 月 13 日起,Visual Studio 2015 文档已移至以前版本的存档。 此日期标记此产品的主要支持结束。 在该日期,Visual Studio 2015 进入了外延支持。 根据文档保留策略,在外延支持期间,Visual Studio 的旧版本的文档可在存档位置的文档站点(URL 中的先前版本)上获得,而不是在主站点上。 有关产品生命周期策略的详细信息,请参阅固定生命周期策略和对 Visual Studio 的旧版本的支持。这意味着 Visual Studio 2015 文章不再显示在此站点的版本选择器中,并且不再在搜索引擎中建立索引。
我按照上文指示,进入旧版本存档,但没有嗅到任何MSDN的东西。再到后来,在官网上意外搜索到到 VS2012 的帮助文档的镜像,我并没有去下载、安装和使用,因为这个VS版本太老了,早就不用了。但是该页面的展示信息,似乎给了我放弃继续寻找的理由,
详细信息,
似乎可猜测,微软基于某种原因,不再推出MSDN离线安装包,也很少再见到DVD安装盘啦,而是提供更加便利的在线安装方式。在以前的关于一些文章中,也提到过,其实不光是microsoft 的软件产品,大多数的IT软件越来越难以下载到离线文件。从用户的角度来看,随着互联网的普及和网络速度不断提升,通过在线更新,用户可以更容易的获得最新补丁、安全更新和新功能,以保持软件的最佳性能和稳定性。从开发商的角度上来看,通过在线渠道下载和激活软件,可以便捷的验证其许可证的有效性和合法性,可以提供更好的安全性和防止盗版。而网络中的iso文件可能是前辈们从旧官网或者从DVD中存留的。
离线MSDN安装
使用从网盘中提取的MSDN镜像文件。打开VS安装管理界面(菜单[帮助] -> 添加和删除帮助内容),选择磁盘安装源。
注意,这里它只识别*.msha类型的文件,iso 镜像文件根本不识别。此时,你只需要双击iso格式的安装包(算是一个解压过程,会生成一个"DVD驱动器(G:/)"的盘符,在这个新盘符下,便会找到.msha后缀的文件)。
选择想要安装的文档名称,然后点击右下角的 "更新" 按钮,等待安装完成。其他不再赘述。
MSDN使用方法
在安装完成本地MSDN帮助文档后,可以通过F1快捷键或者直接通过HlpViewer可执行程序启动它。
从VS内F1启动
在 [帮助] -> 设置帮助首选项,设置为 "在帮助查看器中启动"。当在VS中按下F1时,就会打开帮助程序,并进行自动搜索。
直接启动帮助程序
添加VS帮助程序的快捷方式到桌面,点击后却弹出警告无法启动。
快捷方式-属性页中,如上 "目标" 一栏修改如下:
"C:\Program Files (x86)\Microsoft Help Viewer\v2.2\HlpViewer.exe" 修改为:
"C:\Program Files (x86)\Microsoft Help Viewer\v2.2\HlpViewer.exe" /catalogName VisualStudio14
跳转到了Qt的帮助网页
由于我的VS集成开发环境(以VS2017社区版为例)安装了 Qt VS Tools 插件,即使我新建的是非Qt的工程,当我在某个WindowsAPI函数(如WSAGetLastError)上,执行F1帮助查询时,其竟然跳转到了Qt的帮助网页上,而此时我在帮助首选中设置了 "在帮助查看器中" 启动,而且已经确定被查询函数的的相关帮助文档已经被安装。鼓捣了许久,终于在工具菜单-选择配置卡中找打了答案,如下图:
如上,修改红色框标注位置,关闭 Qt VS Tools 插件对F1的捕获即可。注意上图选项卡不是通过项目-右键-属性打开的,而是通过工具菜单 - 选项 - 打开的。
VS2017在线安装MSDN
安装VS2017社区版本有半年多了,但是没怎么用。今天闲来无事,想整理GetLastError机制的相关笔记,无奈就是跳转不到指定的在线帮助文档页面,这才想起来还没有安装MSDN。按照以前的方法,却没有在VS2017社区版的帮助菜单下找到 "添加和删除内容" 这个操作项。难道VS2017不再支持安装本地帮助文档了?当然不是!是没有开启此功能。因为至少从VS2017开始,所谓的VS安装包,仅仅是一个空壳,所有的真正的功能,都要借助此壳在线现在和安装...
在工具菜单 -> 获取工具和功能(T),会弹们熟悉的VS安装界面,这里弹出了两层Dialog窗口,我们关闭顶层窗口,留下底层窗口:
如上图,点击修改,进入界面后,选择 "单个组件" 选项卡,如下,并在组件列表中找打 HelpViewer ...
点击界面后右下角的下载安装按钮,等待下载完成,并耐心等待自动安装过程完成。待安装完成后,在帮助菜单中,便有了你熟悉的选项。
之前我们使用的是离线安装,现在我的网络畅通,这次选择在线安装,过程如下。
注意更改下上图中的本地存储路径,从系统盘修改到一个别的目录(如,在VS根目录下新建个MSDN目录),我只临时选择了Visual C++和Programming reference for Windows API这两个组件,点击更新按钮后,提示我有138个包需要下载。另外,后来我发现,不管是联机还是磁盘,是可以混合这安装的,可以相互补充。
有些函数在本地MSDN没有帮助?
我尝试了很多方式,都没有成功的在本地MSDN中安装关于GetLastError函数的帮助文档。当时为了找到问题症结,我在Microsoft Help Viewer 2.3 中一股脑的安装了联机和磁盘全部的帮助文档包,但是始终是搜索不到GetLastError函数的帮助。
在本地MSDN中可以查询到 WSAGetLastError 函数,但是的确找不到GetLastError的帮助。再后来 ChatGPT 刚兴起时,它告诉我,有时候某些函数藏在某个其他函数或模块的介绍中,可能就是搜不到,我差点就信了,于是我尝试从WSAGetLastError的文档中找到GetLastError的蛛丝马迹,还真找打了,在WSAGetLastError帮助中有,
For information on how to handle error codes when porting(移植) socket applications to Winsock, see Error Codes - errno, h_errno and WSAGetLastError.
在这个链接中,就有GetLastError的链接,
In Winsock applications, error codes are retrieved using the WSAGetLastError function, the Windows Sockets substitute for(代替) the Windows GetLastError function.(译:在Winsocket应用中,使用WSAGetLastError函数获取错误代码,(语法-定语)它是Windows Socket中代替Windows GetLastError函数的函数。) The error codes returned by Windows Sockets are similar to UNIX socket error code constants, but the constants(常量) are all prefixed with WSA. So in Winsock applications the WSAEWOULDBLOCK error code would be returned, while in UNIX applications the EWOULDBLOCK error code would be returned.
后来我比较了 WSAGetLastError 和 GetLastError 的在线帮助的地址,如下,
bash
WSAGetLastError function (winsock.h)
//https://learn.microsoft.com/en-ca/windows/win32/api/winsock/nf-winsock-wsagetlasterror
GetLastError function (errhandlingapi.h)
//https://learn.microsoft.com/en-ca/windows/win32/api/errhandlingapi/nf-errhandlingapi-getlasterror?redirectedfrom=MSDN
我最终也依然没有成功的在本地MSDN中安装GetLastError的帮助文档,有online文档作为补充,临时将就着用,不了了之。另外,还有一点让我比较纳闷,我从VS2017安装的是 Help Viewer 2.3,但是其联机文档包大多为2015的名称...
切换中英文在线帮助文档
截止我写本小节的时间20221201,microsoft 的在线学习网站,虽然也可以切换到中文版,但是恕我直言,可能是机器自动翻译吧,一塌糊涂,大多时候不如直接读美文原版靠谱,中文版只能是作为一个快速参考,有时候这种中英文切换,可能与浏览器的行为有关,这里不再细究。此处仅记录一点,中英文在线帮助文档之间是可以手动方便切换的。以 "Visual Studio 中的 CMake 项目" 这个MSDN帮助条目为例,
其中文页面地址,
https://learn.microsoft.com/zh-cn/cpp/build/cmake-projects-in-visual-studio?view=msvc-150
其英文页面地址,
https://learn.microsoft.com/en-ca/cpp/build/cmake-projects-in-visual-studio?view=msvc-150
如上,两个地址仅仅是 zh-cn 和 en-ca 的不同。