Just spent a day getting this to work on Windows 7 Ultimate SP1 64-bit.
After installing/re-installing several times, here are the FINAL steps I underwent to get the game working perfectly! In addition, without needing the original CD.
Disclaimer: Whilst I legally own this game, I do not have the intention of carrying the disc around with me to play it on my laptop. Moreover I object to buying multiple copies of the game to have it installed on both my laptop and my desktop, so in addition, this installation also uses an unofficial ('Google sourced') CD key.
Right, so first things first, if you've arrived here after a few failed attempts, you need to clean up.
Step 0:
Uninstall Zero Hour and Generals. Delete the data folder out of 'Documents'. Download the free version of CCleaner and run the registry scanner. Fix all found issues and reboot. (I know, I hate rebooting but don't be impatient, follow this guide to the letter).
Step 1:
I have ripped the game discs (using SlySoft's CloneCD) and so at this point I created four disc drives using Virtual CloneDrive (also SlySoft) and mounted all four discs you get in the deluxe box set. I installed Generals using whatever working CD key I could find and did the same for Zero Hour, leaving the installation paths as default (Program Files (x86) since I'm on 64-bit windows).
Step 2:
Update Zero Hour to version 1.04. I don't know if this is necessary but I do it anyway.
Step 3:
Obtain a NoCD crack from gamecopyworld.com for version 1.04. Rename the old generals.exe and game.dat files to generals.ex_ and game.da_ respectively. Copy in the NoCD files from the zip you downloaded.
Step 4:
Open up Virtual CloneDrive and set the number of disc drives to 'Disabled'. This is an important step.
At this point I attempted to run the game, which failed. So I changed the compatibility settings to Run as Admin for XP SP3. It still failed, but I got the crash log which led me to this thread, so I am mentioning it here nonetheless.
Step 5:
Navigate to the data folder in your Documents directory. Create the file 'options.ini' and edit it, adding in the data given in a previous post in this thread. Save it and close the file.
Step 6:
Launch generals.exe directly from the Zero Hour installation directory. You should get a UAC prompt because of the compatibility settings (run as admin), say yes to it and proceed. The game launches!
Finally:
You should now have a working copy of CNC Zero Hour on your computer, completed to the extent you don't even need to use the game disc to run it. I tested an Easy Skirmish just now and it worked fine but these are preliminary results.
Good luck to the rest of you and post back if you have any issues, I will gladly do what I can to help you further.