Compiler Error:
fatal error C1083: Cannot open include file: 'fstream.h': No such file or directory
Solution: change include from
fsream.h
to fstream
, and add using namespace std;
Related problems:
ios::nocreate
and ios::noreplace
are deprecated. ios::nocreate
is replace by ios::in
CFile::ReadHuge()
and CFile::WriteHuge()
are obsolete. Use CFile::Read()
and CFile::Write()
instead.Replace
&afxChNil
by empty string "".Compiler Error:
error C2059: syntax error : '<'
error C2143: syntax error : missing ';' before '<'
error C2182: 'ConstructElements' : illegal use of type 'void'
error C2988: unrecognizable template declaration/definition
ConstructElements
and DestructElements
are deprecated. Remove definition of these functions. Ref: Microsoft KB 318734WINVER
default changed to 0x0501 (Windows XP). If your program still want to support Windows 2000, the the following line must be included in the project:#define WINVER 0x0400
CPropetySheetEx
, CPropertyPageEx
are deprecated, they are included back to CPropertySheet
and CPropertyPage
.CString s(45)
no longer compiles. Because CString
is changed to template based function with more constructors. This definition has ambiguous overloaded constructors. Change to CString s((TCHAR)45)
.VC++7.1 has stricter type requirements. For example, conversion from
HANDLE
to int
and uint
is not allowed.Compiler Error:
error C2668: 'sqrt' : ambiguous call to overloaded function
Solution:
sqrt
, fabs
, log
and other CRT math functions support both double
and float
type now. An integer input to these functions will cause the error above.Example:
int i = 10;
float f = sqrt(i); //error C2688
float f = sqrt((float)i); //compiles ok
Compiler Error:
error C2440: 'static_cast' : cannot convert from 'void (__thiscall XXXXXXXX::* )(void)' to 'void (__thiscall XXXXXX::* )(NMHDR *,LRESULT *)'
Solution:
Function signature of event handler
OnKillfocus
was changed from void Func(void)
to void Func(NMHDR*, LRESULT*)
.