スポンサーサイト

公開日 : --/--/-- (--)
カテゴリ : スポンサー広告
<< ブログトップ >>

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Keisuke's Backup 開発状況 (2010/03/08)

公開日 : 2010/03/08 (月)
コメント : 0 件 | カテゴリ : Keisuke's Backup
<< ブログトップ >>

バックアップ レポート機能の実装に取りかかっています。

バックアップ (復元) 記録の要となるバックアップ レポート機能の搭載に向けての作業を始めました。iBackup では簡単なフォーマットでしたが、Keisuke's Backup では時間と処理内容を詳しく記録します。

これによって、バックアップ (復元) に失敗した場合の原因究明が容易になります。

なお、この機能は独自ライブラリ (DLL) を用意してレポート作成をその独自ライブラリに専念させようと思っています。本体に何でもかんでもつぎ込んでしまうとサイズが肥大化するばかりか不具合が見つかった場合の対応がしづらくなってしまうことにもなりかねないことから、DLL として独立させることにしました。

あと、個別バックアップと自動実行機能が完成すれば本体は一通り完成となります。

ちなみに、関数では引数を printf 系とほぼ同等にしようと思って実装したらコンパイル エラーになってしまったため、何か方法がないかと模索したところ、printf 系の可変引数へデータが渡せるように引数リストへ変換してくれる _crt_va_start() マクロと _crt_va_end() マクロが存在することが判明し、早速これを利用したところコンパイルが無事に通りましたが実はまだテストしてません。(今日はそこまで時間がなかったため、あす以降改めてテストしてみる予定です。)

大まかな流れは以下のようになります。

・va_list 型変数を 1 つ用意する
・処理対象となる文字列を用意する
 → 独自関数内で実行する場合は仮引数でも構いません。
・_crt_va_start() マクロを使って準備処理を行う
 → 第 1 引数に先ほど用意した va_list 型変数を、第 2 引数には先ほどのベースとなる文字列型ポインタをそれぞれ指定します。)
・ここで printf 系関数などを処理する
 → この際、最後に指定する可変引数には先ほどの va_list 型変数を渡します。(これ重要!!)
・終わったら _crt_va_end() マクロを実行
 → 後始末です。必ず実行してください。引数には _crt_va_start() 関数で指定した va_list 型変数を渡します。

ちなみに、本来は va_start() マクロと va_end() マクロなんですが、これは Visual C++ でやっているために頭に _crt が付いていますが、動作は同じです。覚えておくと意外と使えるかもしれません。

コメント一覧

コメントする















管理人のみ確認可能にする

| ブログトップ |

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。