2012-07-19 2 views
0

일부 줄을 ATL 응용 프로그램을 통해 txt 파일에 쓰려고합니다. 다음은 내가 사용하는 코드의 일부입니다 :Windows API를 사용하여 txt 파일에 쓰기

HANDLE hFile = CreateFile(ofn.lpstrFile, 
      GENERIC_READ | GENERIC_WRITE, 
      0, 
      NULL, 
      CREATE_ALWAYS, 
      FILE_ATTRIBUTE_NORMAL, 
      NULL); 

     DWORD dwBytesWritten = 0; 

     std::list<CString> helpList; 
     std::list<CString>::iterator it; 
     helpList.push_back(L"First Line\r\n"); 
     helpList.push_back(L"Second Line"); 

     for(it=helpList.begin(); it!=helpList.end(); ++it) 
      WriteFile(hFile, (*it).GetString(), (*it).GetLength(), &dwBytesWritten, NULL); 

     CloseHandle(hFile); 

모든 것이 올바르게 작동해도 아무 것도 최종적으로 파일에 기록되지 않습니다. 코드에서 무엇을 변경해야합니까? 문제의

+3

'CreateFile '에 대한 호출이 실제로 성공했는지 확인 했습니까? 'WriteFile' 호출과 동일합니까? –

+0

'CloseHandle (hFile)'을 사용하여 파일 핸들을 작성한 후에 파일 핸들을 닫았습니까? – xaizek

+0

dwShareMode = 삭제, 읽기 또는 쓰기 권한이있는 다른 프로세스가 파일이나 장치를 열지 못하도록합니다. 이미 존재하는 파일을 공유해서는 안된다고 가정합니다. – hB0

답변

0

커플 : WriteFile()에 대한 CloseHandle()

  • 길이 인수를 사용하여 파일에 대한 핸들

    1. 닫기 바이트입니다하지만 당신은 문자를 지정하고 있습니다. 와이드 문자를 사용하기 때문에 문자의 크기만큼 길이 값을 배가해야합니다.
  • 관련 문제