views:

80

answers:

2

Hi,

I have an application developed in VC++ 2010 , it runs in xp , it also runs in Windows 7 when i check the run in XP mode. When i check the run in xp mode , it sets a string value in HK_LOCAL_USER \Software\microsoft\windowsNT\currentversion\appcompatflags\layers folder , and runs well.

When i set the same value in the folder through an application built in VC++ 2010 , it doesn't work why..?

are there any other dependencies , that i should look into..?

+1  A: 

That's because the hive is (and has been, ever since the dawn of Windows Registry) named HKEY_LOCAL_MACHINE.

There also is HKEY_CURRENT_USER, you seem to be mixing things up here. I highly doubt your HK_LOCAL_USER has ever really worked.

Tomalak
A: 

Also, setting the compatibility flag for an application that is still under active development seems like the wrong way to go. Have you looked into why the application needs that flag? Do you know what code would need to change in order for it to run on Windows 7 without the compatibility fixes? In most cases the changes are quite small.

Kate Gregory