0

ファイルがあり、ファイルのサイズを取得したい。_wfopenファイルパスタイプが。であるため、または_wfopen_sファイルを開くためにのみ使用できますstd::wstring

FILE* p_file = NULL;
p_file=_wfopen(tempFileName.c_str(),L"r");
fseek(p_file,0,SEEK_END);

しかし、私はエラーが発生しています

error C2220: warning treated as error - no 'object' file generated  
4

1 に答える 1

0

エラーメッセージを取り除くには、警告を生成している問題を修正する必要があります。

このコードをコンパイルする場合:

#include "stdafx.h"
#include <string>

int _tmain(int argc, _TCHAR* argv[])
{
    FILE* p_file = NULL;
    std::wstring tempFileName = L"c:\\test.txt";
    p_file=_wfopen(tempFileName.c_str(),L"r");

    if(!p_file)
    {
        perror("Open failed.");
        return 0;
    }

    fseek(p_file,0,SEEK_END);
    fclose(p_file);

    return 0;
}

次の警告が表示されます。

警告C4996:'_wfopen':この関数または変数は安全でない可能性があります。代わりに_wfopen_sの使用を検討してください。非推奨を無効にするには、_CRT_SECURE_NO_WARNINGSを使用します。詳細については、オンラインヘルプを参照してください。

だから、それが言うことを聞いて、次のことをしてください:

#include "stdafx.h"
#include <string>

int _tmain(int argc, _TCHAR* argv[])
{
    FILE* p_file = NULL;
    std::wstring tempFileName = L"c:\\test.txt";
    _wfopen_s(&p_file, tempFileName.c_str(),L"r");

    if(!p_file)
    {
        perror("Open failed.");
        return 0;
    }

    fseek(p_file,0,SEEK_END);
    fclose(p_file);

    return 0;
}

-> -> ->を入力_CRT_SECURE_NO_WARNINGSしてこの警告をオフにする方法がありますが、これらの関数の代わりに安全な方法を常に使用する必要があります。Project PropertiesC/C++PreprocessorPreprocessor Definitions

また、fseekp_fileポインタがであるかどうかを確認する前にNULL

于 2013-03-22T10:34:00.793 に答える