2012-04-28 11 views
0

私はC++とwin32でかなり新しいです。C++ Windowsの一時ファイルへの* charバッファの書き込み

  1. 私は長さ、私が知っているし、いくつかのバイナリデータを保持しているバッファのchar *バッファを持っている:私はかなり簡単なタスクを達成する必要があります。 Windows(win32 api)上で、そのバッファの内容(開始インデックスと長さ)を一時ファイルに書き込むサンプルコードを提供してください(管理者権限がなくても書き込み可能でなければなりません)。だから、これを達成するためには、私が書き込むことができるウィンドウで有効な一時ファイル名を取得する方法と、char *バッファの特定の部分からバイナリデータをrpoperlyで書き込む方法を知っておく必要があります。

  2. また、バイナリファイルにcharを使用しても問題ないのは分かりませんが、問題はifstreamがデフォルトでcharとしてデータを読み込むことです。

  3. ちょっとした面倒な質問:私はそれらの作業を終えても、いつもポインタを削除する必要がありますか?私。上記の私の例では、いったんそれを済ませたら、delete bufferを呼び出さなければならないでしょうか?

ありがとう。

+0

何を試しましたか?どのような特定の問題がありますか? StackOverflowはチュートリアルサイトではありません。(#2と#3は簡単に答えることができます:はいとはい) – Corbin

+0

あなたはさまざまなことについて尋ねます。最初の質問ではWindows APIに、2番目にはifstream問題について説明します。どんなAPIが必要ですか? – vissi2

答えて

0

私は長さがわかっており、いくつかのバイナリデータを保持するバッファchar *バッファを持っています。 テンポラリファイル(管理者権限がなくても書き込み可能でなければならない)にバッファの内容(開始インデックスと長さを指定)を記述するサンプルコードを提供してください。 Windows(win32 api)?

Googleでのクイック検索では、一時ファイルに関する製造元のドキュメントが返されます。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363875(v=vs.85).aspx

(場合には、これはあなたにとって重要である)あなたは一時ファイルをこのように使用したら、あなたのコードが自動的に移植できない、ということを覚えておいてください。

一時ファイル用の名前とディレクトリを取得すると、求めているコードは簡単です。ここでも、グーグルでの迅速な検索が返されます。

http://www.cplusplus.com/forum/general/21018/

あなたがC(古い)に準拠のIOStreamを使用する代わりに、スタイルを好む場合は、代わりにも使用することができます。

http://www.cplusplus.com/reference/clibrary/cstdio/fwrite/

もう少し早急に質問します。一度やりとりしたら、いつでもポインタを削除する必要がありますか?私。上記の私の例では、私は を済ませたら削除バッファを呼び出さなければなりませんか?

割り当て後のメモリは、使用後に常にポインタ(その名前の起点)を指し示す必要があります。

char * buffer = new char[MaxBuffer]; 

// more things ... 

delete[] buffer; 

単一オブジェクトの代わりにベクターを削除する場合は、delete[]を必ず使用してください。

関連する問題