2009/07/31(金)Microsoft の『ATL』のコードに不具合、原因は「&」(japan.internet.com)

2009/07/31 24:59

http://japan.internet.com/webtech/20090731/12.html

プログラミングの経験のない方は、「たった1文字間違えただけか」という印象を抱くかもしれませんが、間違えた場所をよく見てみると、わりととんでもない間違いをしています。

具体的には

hr = pStream->Read((void*)pbArray, (ULONG)cbSize, NULL);

と書かれるべきコードが、

hr = pStream->Read((void*)&pbArray, (ULONG)cbSize, NULL);

と誤って書かれていた。

Microsoft の『ATL』のコードに不具合、原因は「&」

pStreamがどんなオブジェクトなのか、Read()がどんなメンバ関数なのかははっきりは分かりませんが、おそらくpStreamの入力ストリームからcbSizeのサイズ分だけ読み取り、結果をpbArrayの指し示す先の配列に書き込むといった処理だと思います。

各変数にはプリフィックスがついていますが、悪名高きシステムハンガリアンではなく、アプリケーションハンガリアンでしょう。pbArrayがboolへのポインタだとは思えないので。おそらくcbはCount of Byteで、pbはPointer of Byteといったところでしょうか。

ハンガリアン記法を使うこと自体は問題ありません。問題は、せっかくプリフィックスをつけたというのに、それを全く活かせていないことです。

書き込む先のアドレスを渡さなければいけない場所で、なぜpbArrayそのものではなく、pbArrayのアドレスを渡すようなコードを書いてしまったのか。作業者は「pb」の文字が目に入らなかったのか。まぁ、おそらく作業者が疲れていたんでしょうけど、せっかくのプリフィックスを妥当性チェックのために使用しないのであれば、タイピング数を増やすだけのルールはやめてしまえばいいのにと思います。

というか、こういうミスが出てくるとハンガリアン記法不要論に勢いを与えてしまうんだよなぁ *1 。困ったものです。

*1:もちろん、私もシステムハンガリアンにはあまり意味があるとは思っていません。必要だと思っているのはアプリケーションハンガリアンです。

2009/07/30(木)参加費を倍払ったら名札も二つもらえないものでしょうか

2009/07/30 23:53

賢押杯2009 *1 のエントリー開始の日が近づいてきました。今年も参加させていただこうと思いますので、スタッフの皆さん、参加者の皆さん、どうぞよろしくお願いします。

ところで、そのエントリーに際してまだ迷っていることが一つあります。それは登録の際の名前です。

廃人になりきれていなかったQMA1の頃を除くと、QMA2~QM5、そしてAn×An1はすべて「ちぃといつ」というCNでプレイしており、過去の賢押杯のエントリーの際も迷うことなくその名前で申し込むことができました。

しかし、現在稼動中の作品については、QMA6が「シアンフロこ」でAn×An2が「パグリアルよ」です。困りました。いや、CNを別々にしてしまった自分が悪いんですけど。

そんなこんなで色々な方に相談したのですが、「シアンフロこ」でAn×An界隈にどれだけ通じるか、「パグリアルよ」でQMA界隈にどれだけ通じるかということを考えれば、パグリアルよのほうがいいんじゃないか、という指摘があったので、パグリアルよで参加しようと思います。

ところで、今急に思い出したんですけど、前回の賢押杯の名札は持ちキャラの素敵な絵が描かれていたんですよね。

……平原より山脈のほうがいいよね、うん。じゃあシアンフロこにします。

2009/07/29(水)2009-07-29

2009/07/29 24:48

話題沸騰のスペースインベーダーインフィニティジーンを購入してみました。

http://www.youtube.com/watch?v=ShO9rtyIX-0

詳細なレポートを書けるほどやりこんではいませんが、久々に大当たりを引けたような気がします。しばらくは楽しめそうです。

2009/07/28(火)4年前から水着で大騒ぎしていた黄金賢者初段QMA6日記

2009/07/28 20:28

連打をせずに水着画像が見られると聞いて飛んできました! 隣のサテのカップルの視線を気にしながら連打する必要もなく、鮮明な画質でルキアたんのけしからん持ち物を拝むことができるとは、実に良い時代になったものです。はいはい、懐古厨乙。

……というわけで戦績です。

1-3-6-2#6-1(5-5)

1勝するのに19クレもかかってしまいました。まぁ、今の私の実力ならこんなもんですかねー。でも、その1勝も19クレ中で一番メンツがきつかったときなんですよね。勝負ってのは分からないものです。

……途中で「今日このまま勝てなかったら、それはそれでブログのネタになるよなー」と思ったのは内緒です。

さて、Extraになってから、予選でもノンジャンルが出るようになり、逆に準決勝のノンジャンル固定もなくなりました。準決勝で「芸能マルチセレクトクイズ」と表示されたときの絶望感はたまらないですね! 癖になりそうです! こんばんは、マゾゲー好きです。いや、でも今日1回区間賞取ったけどw

しかし、今回のバージョンアップに関して、ネガティブな意見が多いようです。ネガティブでも鋭い指摘だったり、建設的な意見であればまた印象も違いますし、そういう意見を書いている方もいらっしゃるのですが、単に負のオーラを撒き散らしている文章も多く、正直言って読んでいて辛いです。

皆さんそれなりにお金をつぎ込んだ顧客ですから、気に食わないことに対して否定したり意見を言う自由はあると思いますが、もうちょっと冷静になったほうが良いんじゃないかと思います。特に、今まで準決勝ノンジャンル否定派を罵倒 *1 していた人は、今回の件では立場が逆になっただけですから、申し訳ないですが何を言っても説得力がありません。気持ちは分からないでもないですが、もうちょっと頭を冷やしましょうよ。

そんな中、アニソン検定EXに熱中している青い方々は完全に勝ち組だと思った。

ところで、来週からの新レッスンでライフスタイルに「パソコン」が入るらしいですが、ライフスタイルってことはパソコンや周辺機器そのものに対する問題が多いんでしょうね。理系学問に「計算機科学」が入るのを熱望していたのですが、その可能性も消えてしまった感じでちょっと残念。ただ、Sを取りたいと思えるものが久々に来たので、しばらくは頑張ってみようと思います。

*1:疑問を呈する、とか、意見を言う、ではなくて。

2009/07/27(月)2009-07-27

2009/07/27 21:27
【埼玉西武 vs オリックス 第15回戦】
(2009年7月22日:西武ドーム)
 
オリックス  1 0 0  0 0 0  1 0 0  0 2  4
埼玉西武   0 0 0  0 0 0  1 1 0  0 0  2
 
[勝] 加藤  4勝2敗12S
[S] 大久保 2勝0敗1S
[敗] 小野寺 2勝3敗13S
 
[本塁打]
  7回表 一輝  2号 ソロ (帆足)
  7回裏 後藤  1号 ソロ (山本)
  8回裏 中村 31号 ソロ (香月)

終盤に2本のホームランで追いつくも、延長11回に小野寺がつかまってしまい、前半戦の最終戦を白星で飾ることはできませんでした。

この試合、藤田がライオンズのユニフォームを着ての初登板。1イニングをきっちり三者凡退に抑えました。9球しか見ていないので、コントロールがどうとか、変化球がどうとかいったことはまだよく分かりませんが、後半戦もこんな感じで結果を残して欲しいものです。