VS lets you choose the compiler warning level, 0 to 4.
Higher is good because compiler warnings often indicate bugs.
However, some warnings are noise, and having a lot of them is bad
because they conceal the important ones.
As an example, a recent update to VS2010 causes it to spew warnings of the form
"function _strdup() is deprecated; use _strdup() instead.
So the new policy is:
- everything compiles with warning level 4
- in boinc_win.h we use #pragmas to suppress 3 specific warnings
that occur a lot in our code, and are not bugs:
- the _function names as described above
- constant conditional expression (like while(1))
- conversion from int to char
And the goal is to build everything with zero warnings
except from outside code like zip.
We're pretty close to that.
The project files for other VS versions should be modified
to also use level 4 everywhere.
This will allow the core client to kill VirtualBox VM's launched indirectly by vboxwrapper. Vboxwrapper launches vboxsvc.exe which launches vboxheadless.exe. This should also take care of the core client being able to kill child processes of the regular wrapper as well. I don't know the full scope of this type of issue? Maybe the default ACLs for a process changed within the last couple of versions of Windows.