Nighthawk has already said everything I wanted to say, advice wise, so I'll stick to offering a different point of view here.

Quote: Originally Posted by
Bidski The compatibility troubleshooter is just as bad. I ran compatibility troubleshooter on one of the programs I was trying to get working and it came up with Windows XP SP?? then when I clicked "Run using these settings" (from inside the troubleshooter) nothing appeared to happen, didn't even get the above mentioned dialog box.
As I said before, compatibility mode doesn't really "fix" anything. The program is capable of running on Windows 7, it just doesn't think it is. All that compatibility mode does, is rather than Windows reporting the correct version string of 6.1.7601 (or 6.1.7600 if you're not on SP1) it reports itself as 5.*.* so the program is tricked into believing it is running XP. No Emulation actually happens, it is just a simple lie. If it won't run on 7 for technical reasons, then merely reporting the version string incorrectly won't help.
In terms of compatibility, 7 is alot better than Vista. 7 uses junction points effectively, so that badly written apps looking for (say) Documents and Settings, get automatically directed to the correct location, rather than throwing a fit when they can't find it. That is one of the things that broke apps with Vista.
Quote:
My question is, why can Windows not natively emulate its previous versions?
My guess, and that is all it is, although it seems reasonable enough, is that at some point you have to say "enough is enough" As I said before, most of the apps that won't run on 64-bit are old, seriously old. They are usually 16-bit. We're talking ME and before era here.
From a technical standpoint, your processor is capable of natively running 32 bit code, so the underlying compatibility layer is probably not that hard to implement. To run 16-bit code however, would mean writing a whole new emulation layer which is, ultimately pointless bloat, when most people who NEED those programs, are businesses, who can run XP Mode anyway (assuming they are using Enterprise) Honestly, I can count on one hand the amount of time's I have needed to use XP Mode for anything and I'm running a 64-bit OS.
On the subject of actual 32 bit programs that won't run, you're guess is as good as mine, I would be almost willing to lay money on the fact they probably have 16-bit installers though.
Quote:
Microsoft has obviously gone through the trouble of implementing this compatibility layer, why not take it one step further and make it full emulation?
Well for one thing, 90% of programs are 32-bit. Microsoft are not going to go and shoot themselves in the foot by suddenly making 64 bit systems incapable of running 32 bit programs. You think developers will rise to the task and write 64 bit? Just think of Vista, and how long it took for
driver compatibility to be anywhere near an acceptable level. I also remind you that the developers had the code at least 6 months before Vista was launched.
Ultimately, Microsoft and their partners are businesses. Could Microsoft write emulation in for the few programs that won't run? Probably. Would it be worth it in terms of money spent to returns/how many people would actually take advantage of it? Probably not. Especially as they have already introduced XP Mode, which does the same job. Plus, if you never have to update, how long before program developers are getting narked with Microsoft because they aren't making any money from upgrades? Ultimately, it's about money.
However, a thought did occur to me, while I was writing this small essay. Check this out:
VMLite XP Mode Plugin for VirtualBox released
It will allow you to run XP Mode without Ultimate/Professional. Not sure where you'd stand from a licensing point of view though, so be warned.