最近作成していたPocket PC用のファイルダウンロードソフトの
ファイルダウンロード部分がやっとのことで完成。
何でこんなところに時間がかかっていたのかというと、
もうわけのわからないような現象にずっと悩まされたわけですが、
具体的に例を挙げてみると、
・recv()の戻り値が正常に返ってこない
・fstreamとfwrite使ったときでぜんぜん違う内容になる
・send()の引数の送信データ部分が string.c_str() の
ときと char の時とで処理内容が違う
・fwriteの「書き込まれる最大数」を無視する
もちろん、こんなこと普通の環境じゃありえないはずです。
で、原因はなんだったかというと、
もちろん、そ ん な こ と わ か る わ け な い。
まぁ、デバッガがとってくる値を鵜呑みにするのも良くないと思うんですがね、
出力されてるファイルの末尾に、どうしても、ごみがついちゃうんですよ。
そのごみの部分以外は全部あってるんですがね、結局、
どこかで無駄な分を出力してて、デバッガから送られてくる値も
その現象を指し示すような値だったわけですよ。
この手の不具合だと、リビルドすれば直りそうな感じもしますが、
それもだめでした。
まぁ、はっきり言って、ほかの事と重なって非常に腹立たしかったわけですが、
何とか、これが片付いて勉強に集中することができそうです。
#お願いだから、これで後作業をしてたら、いつの間にか
#結果が変わってたとかやめてくれよ。
てか、そういや、作ってて気づいたけど、よくよく考えたら、
RSSかLocationヘッダを解析する必要があるんだよなぁ。
不恰好になっちゃうけど、その部分だけでも、.NET Frameworkに投げようかなぁ。
さて、ひと段落ついて、Free Typingのほうへの作業再開。
ソースコードの修正は完了し、後はマニュアル整備。
早めに新しいバージョン出して、勉強に集中できるようにしよう。