Migration of a VCPP program to Windows Vista
-
Have any one of you migrate any VC++ (using MFC, ver 6.0) program from Windows 32 bit operating systems (XP, 2000, ME, 98SE) to Windows Vista? If so, can you please share some of the problems you have faced and there resolutions? (I heard that Vista has a memory issue if somebody uses malloc/calloc functions). Any additions to this list (with/without resolution)?
-
Have any one of you migrate any VC++ (using MFC, ver 6.0) program from Windows 32 bit operating systems (XP, 2000, ME, 98SE) to Windows Vista? If so, can you please share some of the problems you have faced and there resolutions? (I heard that Vista has a memory issue if somebody uses malloc/calloc functions). Any additions to this list (with/without resolution)?
I have run some older VC++ (with MFC, version 6) on Vista and haven't really run into any real problems.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
-
Have any one of you migrate any VC++ (using MFC, ver 6.0) program from Windows 32 bit operating systems (XP, 2000, ME, 98SE) to Windows Vista? If so, can you please share some of the problems you have faced and there resolutions? (I heard that Vista has a memory issue if somebody uses malloc/calloc functions). Any additions to this list (with/without resolution)?
Jeez, how does this rubbish spread? The memory protection within a process is unchanged. You should have no issues with malloc/calloc as long as you're using them correctly already - if not, there may be changes in how the heap manager allocates memory that will cause the addresses of that memory to be different, which could expose some latent bug. What has changed is the addition of User Account Control. This enforces a requirement that Microsoft have been making for their Windows logo program for a long time - that the application works correctly if the user is not an administrator. Therefore you must not write to privileged locations - for example the Windows folder, Program Files folder, and HKEY_LOCAL_MACHINE. Windows Vista has compatibility put in place for legacy applications that redirects writes to many of these locations to non-privileged per-user stores. This is however confusing to users. You should aim to fix any errors in this area. You'll find them most quickly if you add a manifest to your application that declares a requestedExecutionLevel of 'asInvoker' - the offending operations will then fail with Access Denied errors. You can also test on Windows XP when running as a standard user. For the most part though any issues will be specific to your application. A helpful toolkit is Application Verifier[^] - this will pick up many errors in what you're doing.
DoEvents
: Generating unexpected recursion since 1991