今VC++でデータをtxtファイルへ書き出すといったようなプログラムを作成中です。
しかし、その中でファイルへの書き出しを『WriteFile()』を用いて行いたいのですが、
完成したtxtファイルを見てみると、記号みたいな文字が一列目に表示されているだけで
うまくいきません。
ここで、『WriteFile()』の返り値を調べてみたら『1』でした。0以外なので成功してい
るような気がするのですが、どなたか原因がわかる方がいらっしゃいましたら教えてくだ
さい。よろしくお願いします。
WriteFileする時点でブレークして,書き込む情報を調べても正しいですか?
また,WriteFile周辺のプログラムを抜粋して載せてみてください。
現在の情報からでは答えようがないです。
バイナリ形式で書き込んでるのに、メモ帳でみた感じかな?
バイナリエディタで見れば、データの確認はできると思います。
まずは、書き込んだ形式をチェックしてみてね。
YuOさん、ライオンさん返答ありがとうございます。
返事が遅れましたが、以下にソースと出力結果を書きました。
ゥ力で解決しようとしたのですが、やはり結果は同じでした。
どうにかtxtファイルとして書き出すことは出来ないのでしょうか?
宜しくお願いします。
【ソース】
CString EntryName
CString lpFileName;
CString FName;
HANDLE HRes;
DWORD DataSize;
BOOL BRes;
//ファイルの作成
FName = FILE.txt;
lpFileName =C:\\FOLDERNAME\\+ FName;
HRes = CreateFile(lpFileName, GENERIC_READ|GENERIC_WRITE, 0, NULL,
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
//ファイルへ出力
BRes = WriteFile(HRes, (LPVOID)&EntryName, strlen(EntryName), &DataSize, NULL);
CloseHandle(HRes);
【出力結果】
エ&*・*
CString は char* ではありません。
const char* str = EntryName;
BRes = WriteFile(HRes, (LPVOID)str, strlen(str), &DataSize, NULL);