软件包类型(x86 或 x64)是否取决于我的应用程序类型或安装它的操作系统类型?
即,如果我开发一个 32 位应用程序,我需要
- 仅部署 x86 包或
- 部署这两个软件包并在 32 位 Windows 上安装 x86 和在 64 位 Windows 上安装 x64?
这个问题的答案32-bit VC++ redistributable on 64 bit OS? 表明它只是 x86 包,所以它取决于我的应用程序,但它没有给出任何解释/链接。MS 下载站点也没有具体说明这一点。
软件包类型(x86 或 x64)是否取决于我的应用程序类型或安装它的操作系统类型?
即,如果我开发一个 32 位应用程序,我需要
这个问题的答案32-bit VC++ redistributable on 64 bit OS? 表明它只是 x86 包,所以它取决于我的应用程序,但它没有给出任何解释/链接。MS 下载站点也没有具体说明这一点。
编译时,标准库的所有使用都会创建必须在链接时解析的引用。链接器在导入库中烘焙匹配的运行时 DLL,必须在加载时完全匹配。这意味着匹配编译器版本、服务包和位数。
还要记住,32 位进程无法加载 64 位 DLL。因为 64 位 redist 只包含 64 位 DLL,所以在加载 32 位可执行文件时没有帮助。
如果您需要最大限度地发挥 64 位操作系统的潜力,则取决于应用程序,您可以同时部署以处理 64 位和 32 位处理。但是,如果您的应用程序没有超过 32 位的限制,您可以仅将应用程序部署在 x86 上,无论如何它也应该通过 32 位虚拟化在 64 位操作系统上运行。