CAtlFileを使用してのファイル読み込み

[戻る]
PeenBall 2004/09/22(水) 10:03:27
お世話になっております。

CAtlFileを使用して、ファイルの読み込みを行ったのですが、
GetSize関数で取得した長さをRead関数で指定したにも関わらず
ゴミらしきものが入っていました。

回避する方法はないのでしょうか?


CAtlFile cFile;
hRet = cFile.Create(tFileName,    GENERIC_READ,FILE_SHARE_READ,OPEN_EXISTING);
if (! SUCCEEDED(hRet))
{
    return 0;
}
cFile.GetSize(nFileLength);
cFile.Read(lpData,nFileLength);

επιστημη [E-Mail] [HomePage] 2004/09/22(水) 10:25:59
// fileread.cpp: 己自身を読む

#include <atlfile.h>
#include <cassert>
#include <iostream>

int main() {
  CAtlFile file;
  HRESULT result = file.Create("readfile.cpp",    
GENERIC_READ,FILE_SHARE_READ,OPEN_EXISTING);
  assert( SUCCEEDED(result) );
  ULONGLONG length;
  file.GetSize(length);
  char* buffer = new char[length+1];
  file.Read(buffer, length);
  buffer[length] = '\0';
  std::cout << '[' << buffer << ']' << std::endl;
  return 0;
}

…何の問題もありません。ゴミなんか付きません。
ひょっとして、'\0'で終端せずにprintしただけ?

古いスレッドには追加発言できません。