Will VS2008 compile binaries compatible with Windows 7

I am using Microsoft Visual Studio 2008 (VC9) to compile a project with a .dsw file. I already have 2010 and would rather use it, but it looks like this dsw was built in 2008.

I would like to compile and create a binary file that is also compatible with Windows 7. My questions:

  • If I compile since 2008, will the resulting binary version be compatible with Windows 7? I'm not sure which version of VS is running Windows 7 support.
  • or does it have nothing to do with the VS version and is related to the Windows SDK? If so, can I use VS2008 with the new Windows SDK?

Someone might clarify.

+4
source share
3 answers

VS2010 includes version 7.0 for the Windows SDK and VS2008. You need the Windows SDK v7.0 if you want your application to use Windows 7 features such as jump lists.

Since you already have VS2010 installed, you can simply change your file / lib paths in VS2008 to point to the Windows SDK v7.0 instead of the standard one that comes with VS2008. This suggests that you need this version of the SDK.

You don’t need the latest Windows SDK unless you plan to use the latest Windows 7 features such as tapes and jump lists. If you are building your OS application with the lowest common value (for example, Windows XP), then in reality you should be fine using VS 2008 with the default settings.

Another problem is that if your code was originally written before the release of Windows Vista, it is likely that it will not work properly in Windows 7 if it is not running in administrator mode, which you want to avoid. The only way to fix this is to rewrite most of your code to avoid writing to certain protected directories and to avoid using certain APIs that require administrator privileges.

+2
source

Microsoft has an excellent backward compatibility history, so almost everything that you compile with any version of Visual Studio / Visual C ++ will be compatible with Windows 7. The same may not necessarily apply in the opposite way, that is, if you use an API that appeared in Windows 7, your application will be mistaken when you try to run it in previous versions of Windows.

There are several things to consider:

  • If the project was originally written for the target Windows XP or earlier, this may cause UAC to fail.
  • There are changes to the directory structures (for example, %systemdrive%\Documents and Settings becoming %systemdrive%\Users ) that are pretty well handled by the link that Windows 7 creates in the root of `% systemdrive%, but you may be wrong.
+5
source

The Windows SDK is well addressed. See between Windows 6.0 and Windows 7.0 on x86_64 generated by abi-compliance-checker for a detailed comparison.

Reports for other versions of Windows are provided here: https://abi-laboratory.pro/index.php?view=windows

enter image description here

0
source

All Articles