by BSW727 » Mon Dec 14, 2009 9:28 am
A search turned up very little, but this explanation and possible fix I found sounds promising:
A Google search for StackHash revealed very few hits. For the most part, the hits were from other newsgroups complaining of programs crashing under Vista. However, one hit provided a useful lead relating to Data Execution Prevention (DEP).
DEP helps protect against damage from viruses and other security threats. Modern CPUs implement it in hardware. By default, Vista uses DEP for "essential Windows programs and services" but not user-installed programs. However, you can set Vista to use DEP for "all programs and services except those I select". When I changed from the default to the latter, our program would crash on launch.
If you are having problems getting software to launch without crashing under Vista, try the following:
1. Goto Control Panel\System
2. Click on the 'Advanced' tab
3. Under 'Performance', click the Settings... button
4. A new window will open - 'Performance Options'
5. Click the 'Data Execution Prevention' tab
6. You will see two options:
( ) Turn on DEP for essential Windows programs and services only
(.) Turn on DEP for all programs and services except those I select: <------ make sure this one is selected
7. Click the Add... button and look for the Enosoft DV Processor main executable (Program Files\Enosoft\Enosoft DV Processor - Unlicensed\EnoDVProcessor.exe)
8. Click OK. You may or may not have to reboot - Windows will tell you.
9. Close any other dialogs.
(Obviously, change step 7 for a different application.)
The reason DEP kicks in for our software is probably because it is wrapped in a third-party program that manages licensing, on-line purchasing etc. It also protects the main program against reverse engineering. One of the things it does is modify itself when it launches - DEP sees that as a security risk, but it isn't.