<< 「バブルへGO!! タイムマシンはドラム式」(2007年 日本) | main | 株主総会 >>
プログラマーからのメール

先日、社内のプログラマーからメールを受け取った。と言ってもあるプロジェクトのメーリングリストに入っていただけで、特に僕宛ということではない。以下、その内容の一部。

MFCのCImageListにCBitmapをAddするとき以下のようにCBitmapのアドレスを指定しますが、これはローカル変数でもよいのか?

結論から言うと、ローカル変数でも大丈夫です。CImageListはWin32のHIMAGELIST の薄いラッパであり、
int CImageList::Add( CBitmap* pbmImage, CBitmap* pbmMask ) { return ::ImageList_Add( m_hImageList, pbmImage->GetSafeHandle(), pbmMask->GetSafeHandle() ); }
と定義されており、MFCクラス(CBitmap)のオブジェクトのポインタが内部に保持されることはありません。また、ImageList_Add()は、HIMAGELISTの内部にビットマップのコピーを作成しますので、ここで渡したビットマップハンドルも、DeleteObject()して支障はありません。(逆に、他で使わないなら、リソースの無駄なので、DeleteObjectしておくべきです。)

どうも新人プログラマーからの質問に先輩が答えているらしいが、質問の意味も答えの内容もぜーんぜん分かりません! 考えてみると入社以来約20年、ソフトメーカーで働きながらプログラムの勉強というものをやったことがなかった。新卒なら全員強制的にプログラム研修があるのだが、中途採用者にはそれもない。製品のPKGやCD-ROMが作られる仕組みは知っていても、肝心のプログラムの作成過程を知らない。こんなことでいいのかと今更ながらに思ってしまった。

かといって今から勉強できるわけもない。しばらくこの呪文のようなメールを眺めていたが、「役割分担だ!」と勝手に割り切って削除した。尊敬します>>プログラマーさま

| comments(0) | 仕事 | by yabusho
コメント
コメントする