我正在使用Microsoft Visual Studio 2008(VC9)编译具有.dsw文件的项目。我已经拥有2010年并且更愿意使用它,但似乎这款dsw是为2008年制造的。
我想编译并生成一个兼容Windows 7的二进制文件。我的问题:
有人可以澄清一下。
答案 0 :(得分:5)
Microsoft具有很好的向后兼容性“故事”,因此使用任何版本的Visual Studio / Visual C ++编译的任何内容都将与Windows 7兼容。反过来也可能不一致,即如果您使用API在Windows 7中引入的,当您尝试在以前版本的Windows上运行它时,您的应用程序将会出错。
但有几件事需要考虑:
%systemdrive%\Documents and Settings
成为%systemdrive%\Users
)的更改由Windows 7在`%systemdrive%的根目录中创建的链接处理得很好,但您可能会犯规这些。答案 1 :(得分:2)
VS2010包含Windows SDK 7.0版,而VS2008则没有。如果您希望应用程序利用跳转列表等Windows 7功能,则需要Windows SDK v7.0。
由于您已经安装了VS2010,因此您只需将VS2008中的include文件/ lib文件路径更改为指向Windows SDK v7.0,而不是VS2008提供的默认路径。这假设您需要该版本的SDK。
如果您不打算使用最新的Windows 7功能(如功能区和跳转列表),则不需要最新的Windows SDK。如果您正在为最低通用分母操作系统(即Windows XP)构建应用程序,那么使用默认设置的VS 2008确实应该没问题。
另一个问题是,如果您的代码最初是在Windows Vista发布之前编写的,那么它很可能在Windows 7上无法正常运行,除非它在管理员模式下运行,这是您想要避免的。解决这个问题的唯一方法是重写大部分代码,以避免写入某些受保护的目录,并避免使用某些需要管理员权限的API。
答案 2 :(得分:0)
Windows SDK完全向后兼容。有关详细比较,请参阅binary compatibility report工具生成的x86_64上的Windows 6.0和Windows 7.0之间的abi-compliance-checker。
其他Windows版本的报告位于:https://abi-laboratory.pro/index.php?view=windows