C++ C++;C4996带有wfopen函数的错误

C++ C++;C4996带有wfopen函数的错误,c++,file,C++,File,我有4个头文件,它们都是用_wfopen()打开txt文件中的数据,如下所示: FILE* file = _wfopen(L"data.txt",L"r,ccs=utf-8"); VC++给了我一个错误C4996,但是在一个头文件中,其他三个没有任何错误。我怎样才能解决这个问题? 更新: 我的教授给了我这个代码。我编译了它,只有C4996警告。因为我需要重用它,我创建了一个新项目,并将他的代码中的所有内容复制到新项目中。然后它给了我一个C4996错误 在web上进行浅层搜索表明您正在使用一个不

我有4个头文件,它们都是用_wfopen()打开txt文件中的数据,如下所示:

FILE* file = _wfopen(L"data.txt",L"r,ccs=utf-8");
VC++给了我一个错误C4996,但是在一个头文件中,其他三个没有任何错误。我怎样才能解决这个问题? 更新:
我的教授给了我这个代码。我编译了它,只有C4996警告。因为我需要重用它,我创建了一个新项目,并将他的代码中的所有内容复制到新项目中。然后它给了我一个C4996错误

在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);
}
...
对于所有四个调用,此错误只指出一次的原因是编译器会抑制重复的错误


参考:

C4996应该是一个警告,如果你知道自己在做什么,通常是无害的。实际上,使用
#pragma warning(disable:4996)
来摆脱它(用
pragma warning(push)
/
pragma warning(pop)
),这不是我的代码。我的教授把它作为一个C#项目的组件给了我?希望他的代码是正确的。我使用#pragma在头文件中禁用警告,就像Alexandre C在上面写的那样,而在另一个头文件中没有错误。我发现编译器抑制了错误,那么其他头文件中应该有错误。既然你告诉了编译器我不想警告你这种不赞成,我想它不应该这样做,因为它不应该这样做。