3

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

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

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

4

1 回答 1

2

网络上的浅搜索表明您正在使用已弃用的函数,从而引发错误 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

于 2012-11-25T11:23:13.457 回答