2012-02-07 26 views
0

WriteFileを使用してファイルに書き込みを書き込んだファイルからReadFileを読み込むことができません。それはうまく動作します。その単純な文字列:私はちょうど

"テスト文字列、テストウィンドウ関数"。

私は今すぐファイルから読み込み、文字列と比較しようとしているだけで、正しく動作するようにしています。私は持っています:

DWORD dwBytesRead; 
char buff[128]; 
ReadFile(hFile, buff, 128, &dwBytesRead, NULL) 

しかし、それは私にとっては間違っています。 hFileは、ファイルに書き込むときに使用するハンドルです。何が起こっているのかについてのアイデアはありますか? (コメントから更新)

EDIT:

私はGetLastError()からE_ACCESSDENIEDを取得しています。ここで私はhFileを得た方法である:

hFile = CreateFile (TEXT(movedFileName.c_str()), 
        GENERIC_WRITE, 
        0, 
        NULL, 
        OPEN_EXISTING, 
        FILE_ATTRIBUTE_NORMAL, 
        NULL); 
+1

あなたは 'hFile'を初期化コードを投稿することができますか? 'ReadFile()'の後に 'GetLastError()'が返るのは何ですか? – hmjd

+1

'GetLastError()'を調べて、 'hFile'の入手方法を示してください。 –

+1

ファイルの先頭に戻りますか? –

答えて

1

hFileGENERIC_WRITEのために開かれています。あなたはそれから読み取るだけでなく、それに書き込みたい場合はGENERIC_READでオープンする必要があります。

hFile = CreateFile (TEXT(movedFileName.c_str()), 
        GENERIC_WRITE | GENERIC_READ, 
        0, 
        NULL, 
        OPEN_EXISTING, 
        FILE_ATTRIBUTE_NORMAL, 
        NULL); 
+0

乾杯。私はこれでさらに問題に遭遇する。バフはちょうどでいっぱいです。唯一の賃貸マンション。私はLPVOIDに出くわすことはありません。基本的に私は上記の文字列を持っていて、文字列とファイルからの読み込みが同じであるかどうかをテストするためにbuffを使いたいと思っています。これを行う方法はありますか? – discodowney

+0

あなたの例では、初期化されていない場合、buff []に割り当てられましたか?@ http://msdn.microsoft.com/en-us/library/windows/desktop/bb540534(v=vs.85).aspx –

+0

@ user1100102、私はそれについて別の質問をするでしょう。それはコメントにそれを解決しようとすることにもっと注意を払い、より簡単に対応するでしょう。 – hmjd