While building the latest DOSBox SVN using Visual Studio 2003 I found something kind of annoying under Windows 10. The first thing is that if I search through the source code base, the application locks up, hard. It turns out that this has been an ongoing issue with Windows 8 (maybe Vista/7?) with Aero rendering of all things. The fix is to disable Desktop Compositing & Desktop Themes, but the application comparability tab is hidden on many applications for Windows 10.
See how the application preview doesn’t render anything at all? This is the hint that it’s broken. I think it may be worth sharing this ‘fix’ as I’m sure that other applications that behave strangely have the same issue.
I found the solution to this over on stackoverflow in this discusstion:[https://stackoverflow.com/questions/2422581/visual-studio-net-2003-on-windows-7-hangs-on-search]. The fix is a registry entry in the “HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers” key.
The required settings to devenv.exe is:
“^ RUNASADMIN DISABLEDWM DISABLETHEMES”
Which, will run Visual Studio as Administrator allowing you to debug, and disable all the Aero assists for the application allowing things like search to work again.
I had gone further and enabled the Windows XP SP3 compatibility settings, however on doing a clean build I was presented with this error:
fatal error C1033: cannot open program database ''
Which I never could find any good source on what caused it, other than by guessing to remove the Windows XP flag, and now I’m able to build.
While debugging and re-building the debug database is held open on Windows 7 (maybe Vista?) and beyond on x64 based OS’s. You’ll get the annoying LNK1201 error.
There is a fix on bytepointer.com (local backup vs7.1_on_win7_pdb_handle_leak_unofficial_fix_win10.zip) that involves patching/replacing natdbgde.dll . All I can say is that it seems to be working for me.
In order to do a full build of DOSBox I had to re-build SDL, SDL-net, zLib, libPNG, and set them to a common C runtime linker setting to get a build where the final link didn’t complain. However when it came to existing project files I did have to find some older Visual C++ 6.0 stuff for many of the components, but using those I was able to ‘upgrade’ them to the 2003 environment and produce a working set.
I’ve got to say, that the AVI capture in the newer branches (I’m using build r4177) is really great!