サイトアイコン CAD日記

若いもんにC++を教えてやって、これまでやってきたことが少しでも伝わってくれればと願う夜

ファイルをセレクトするというC++で作ったActiveXのDLLのデバッグができないかと彼がおいらのところに来た時点で、そいつはなかなかチカラがあるなと感じた。だって、いまどきの若い人間がアンマネージドの代表格であるC++のプログラムに興味を示してくるんだから。実際のところは、好きでそこに関与したわけではなく仕事の一つとしてやむを得ず話に来たのだろうが、まぁそれはいい。

10年くらい前までならば、C++を使える人間が重宝されていた。ごく最近C#に取り組んでみてわかったけれども、C++のめちゃくちゃメンドウな処理はクソであり、そんな高いハードルがあったら誰も寄り付かないってもの。アンマネージドだからこその高速処理および陳腐なマシンスペックでの動作というメリットはある。ポインターという言語仕様の難解さは、若くてこれからプログラムを学ぼうという人間を近づけない。入社してから20年くらいそんなC++だけをやってきた。

そのファイルをセレクトするというActiveXだって、今じゃー誰も手が出せなくなっている。いい意味で枯れたプログラムだから、新たに手を入れることもなくバグもなくひっそりと消えようとしている。だって、ActiveXはIEのアドオンを作るための技術だからね。Chrome全盛で、マイクロソフトだってIEを捨ててEdgeなる新しいものを出してきて、MacだったらSafariだし、FireFoxだってそこそこのユーザー数がいる状況。

彼に教えたことはActiveXのデバッグ方法。秘蔵であり骨董品となりつつあるWindows 7+VisulaStudio 2008の環境を貸してやり、デバッグの手順を伝えた。IEを起動してテスト用サイトを開いといて、VSからプロセスにアタッチで、一覧のなかの一番上のiexplorerを指定。ブレークポイントを仕掛けて、IEからアクションを起こすとブレークポイントで止まるって感じ。自分でやるのも2年振りくらいだったから、思い出すのに1時間かかってしまった。一番上のexplorerというところがミソで、最初は二番目のx64名前が付いたものを指定してしまってハマった。この手の情報はググっても出てこない。需要がなければ供給されないのは当然。

老兵はこうやって消えていくんだな。消える前にこうやって少しでも今の人間に伝えられることがあってよかった。CADもそうだな。あとを引き継ぐ人間はいないので、おいらが最後の代となるだろう。そんな損な役回りを甘んじて受け入れるつもりはないんで、次の動きを急ぐ必要がある。責任取って、早々と退場するべし。責任も権限もないけどね。

彼は結果を出した。不幸中の幸いだったのはActiveXのDLLにバグがあったわけでもなく、デバッグしたことによりDLLの仕様を把握することができて、問い合わせ元へのあと腐れない回答ができて、一つの仕事としてまっとうしていたのを見届けた。仕様書じゃわからんことをデバッグによって把握したわけだ。がんばれ若者!

モバイルバージョンを終了