error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
解决方案: 右键工程 --> 属性 --> 预处理器 --> 预处理器宏定义 --> 编辑 --> 输入 错误提示中的 _CRT_SECURE_NO_WARNINGS
参数 --> 应用即可
error C2664 “void ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Format(UINT,...)”: 无法将参数 1 从“const char [3]”转换为“const wchar_t *”
问题分析
VC2005及更高版本默认使用Unicode字符集,CString里存的是宽字符,也就是wchar_t,而不再是char。你可以这么写:
string.Format(_T("%4d-%2d-%2d"),st.wYear,st.wMonth,st.wDay)
以后写程序的时候,定义字符串变量,不要用 char*
,而用 TCHAR*
。 所有字符串常量,不要直接用 " "
,而要用 _T("")
。
举个栗子:
TCHAR* str = _T( "Hello, World" );MessageBox( _T( "Hello" ));
【注】 以上内容是在MFC里面的书写方式。写控制台程序的话,就不用了。原链