ReadFile が正常に読んでくれない – プログラミング – Home

ReadFile が正常に読んでくれな...
 
通知
すべてクリア

[解決済] ReadFile が正常に読んでくれない


aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

はじめまして。
SDKの質問でもいいでしょうか…?

ReadFile API で、あるファイルを読み込もうとしています。
が、ちゃんと読んでくれません。
どういうことかと言いますと…

読み込みたいファイルをバイナリエディタで見た場合、データは
EC BB E5 57 1C C1 16 B7 DB C0 00 83 3B C1 33 C0
と並んでいました(一部抜粋)。

が、ReadFile で BYTE 配列に読み込んでみると、
00 BB 00 57 1C C1 16 B7 DB C0 00 00 3B C1 33 C0
となっているようです(一部 00 になってしまっている)。

このせいで、それ以降の処理がうまくいかずに困っています。
なお、他のファイルも試してみましたが、同じような症状が出ます。

原因に心当たりがある方がいらっしゃいましたら、教えていただけないでしょうか?

関連しそうな部分のコードも載せておきます。

#define INBUFSIZE 20480

HANDLE hInFile = CreateFile( lpszInputFile, GENERIC_READ, FILE_SHARE_READ,
NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL );

BYTE inBuf[INBUFSIZE] = { 0 };

ReadFile( hInFile, inBuf, INBUFSIZE, &dwRead, NULL );

環境は、WinXP SP1、VC++.NET です。


引用
トピックタグ
YuO
 YuO
(@YuO)
ゲスト
結合: 24年前
投稿: 252
 

値がそのようになっていることを,どのようにして確認しましたか?

VC++.Netのデバッガには,正しい値を表示しないという,
バグとしか思えない仕様がありますが……。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
Topic starter  

YuOさん、レスありがとうございます。

> 値がそのようになっていることを,どのようにして確認しましたか?
ReadFile の直後まで実行して、自動変数ってウィンドウに表示されたものを書きまし
た。

> VC++.Netのデバッガには,正しい値を表示しないという,
> バグとしか思えない仕様がありますが……。
え゛っ、そんなんあったんですか…

で、別のメモリエディタで変数の中をのぞいてみたところ、どうやら ReadFile はちゃ
んと読んでくれているようでした。

しかしそうすると、その後の処理が失敗するのには別の原因があるのか…


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました