带有_wfopen函数的C ++ C4996错误

时间:2012-11-25 11:16:11

标签: c++ file

我有4个头文件,所有这些文件都使用_wfopen()从txt文件中打开数据,如下所示:

FILE* file = _wfopen(L"data.txt",L"r,ccs=utf-8");

VC ++给我一个错误C4996,但只在一个头文件中,其他三个都没有错误。我怎样才能解决这个问题 ? 更新: 我的教授给了我这个代码。我编译了它,并且只有C4996警告。因为我需要重用它,我创建了一个新项目并将他的代码中的所有内容复制到新项目中。然后它给了我一个C4996错误。

1 个答案:

答案 0 :(得分:2)

Web上的浅层搜索表明您正在使用已弃用的函数,从而引发错误C4996。如示例所示,您应该使用函数_wfopen_s代替。

...
// Create an the xml file in text and Unicode encoding mode.
if ((fileHandle = _wfopen( L"_wfopen_test.xml",L"wt+,ccs=UNICODE")) == NULL) // C4996
// Note: _wfopen is deprecated; consider using _wfopen_s instead
{
    wprintf(L"_wfopen failed!\n");
    return(0);
}
...

您遇到此错误的原因只针对您的所有四个调用指向一次,即编译器会抑制重复错误。

参考:http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx