仕事でVC++のコードを書かされている。というか、既存のものに関する修正だが、例外処理の追加なのでちょっと手間取っている。C++としてはPMDMX以来2度目、VC++としては初めてだ。俺なんかが組んでも時間がかかるだけだと思ったんだが、客はそれでも構わないらしい。揃いも揃ってunix集団なので俺でも平均値並みで、俺が一番手が空(す)いているから、とのこと。
さて、VC++とはいったものの基本的にはCのプログラムである・・・という触れ込みだったが、蓋を開けてみれば結局Windowsにベッタリだった。どうも理由不明・現象不明でプロセスが消滅してしまっているので、原因はともかくどうにかして事象だけでも探りたいらしく、全くのフリーハンドで、ソースコードレビューもウォークスルーもキャンセルして商用機に搭載していいらしい。いいのかそれで!?
ちょっと悩んだが、改造は3点。
signal( )システムコール:
abort( )等によるSIGABRTを検出できる。
C構文のまま使用可能。
signal.hさえincludeすれば問題なく動く。
try-catch構文:
ゼロディバイドやヌルポ等を検出できる。
C++コンパイルする必要がある。 ←検証していない
winafx.hが必要であるのか? ←よくわからない
フラッシュとファイル出力:
標準出力にデバグ情報を放り出しているのだが、fflushもなしにただprintfを置いてあるだけなので動いているかどうかわからない。そもそもどの時点で業務的・論理的にエラーになっても、すべて同一のエラーコードを出力するという超!素敵仕様なので、エラー情報の詳細をフラッシュした標準出力ストリームとファイルに出力するように改修する。
まあ、今更ではあるがVC++に慣れるいい機会だ。
2009年04月29日
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/28755774
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/28755774
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック