See:
http://msdn.microsoft.com/en-us/library/6ybhk9kc.aspx[
^]
"The main difference between the secure functions (with the _s suffix) and the older functions is that the secure functions require the size in characters of each c, C, s, S and [ type field to be passed as an argument immediately following the variable."
There is no way the preprocessor can automatically substitute the secure version fscanf_s for fscanf because the secure version requires different parameters.
You'll have to either fix the fscanf calls yourself or decide to ignore those warnings.
As for where to define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES, I would either do it on the compiler command line, or in StdAfx.h at the top.