Sat, 21 Dec 2002 20:12:53 JST / hina.di
powered by tds-1.3.0
<issei@issei.org>
論文ですが、面白かったので紹介。
IDispatch インターフェースを実装した COM を作れば良い。 自前で書くとかなり面倒だが、ATL を使ってウィザードでデュアルインター フェースを選択すれば、次のような定型処理は VC++ がまとめて面倒を見てく れる。
あとは C++ で実際に処理を行うコードを書くだけ。 ASP なら Server.CreateObject(), VB なら CreateObject() を呼ぶことでオ ブジェクトを作成し C++ で実装したコードを呼び出せる。
DLL ファイルのアクセス権や COM の起動権限を、IIS の実行ユーザ (IUSR_マシン名) に付与しておくこと。 これを忘れるとServer.CreateObject() で撥ねられる。
純粋に API だけでプログラミングするのは、かなり面倒。勉強のために一回 は COM API でプログラミングしても良いが、実際の COM を作るときには素直 に ATL を使うべき。
COM で扱うデータ型 VARIANT, BSTR, SAFEARRAY などに対応してラッパ関数 や、コンパイラ組み込みの型サポートがあるので有効に利用すること。 現状の VC++ 6.0 では MFC でのみ提供されているラッパクラス *1もあるので、ATL のみで実装するか MFC も併用するかは要検討。
最近何かと話題の多い電話業界ですが、交換機や携帯電話がらみのプログラマ をやっている某氏から、近況のメールを受け取る。面白すぎ。
ともかく「そっち方面の仕事に関わってはいけない」ということは、良く分かっ た(ぉぃ
本じゃないけど COM 関連のドキュメント *1。C++ プログラマなら、これぐらい読めば簡単な COM は書けます。
2ch のプログラム板から。Wizardry シリーズで面白かったものを抜粋。
ぷろぐらまは上司からのめーるをあけた おおっと、テレポーター *デスマーチのなかだ*
ささやき えいしょう いのり ねんじろ! * 本番の環境では動きませんでした *
ここは宿屋だ。どこで休むんだい? 仮眠室 応接室のソファー 並べた椅子の上 床の上で寝袋 →机の下 −−−−−−−−−−−−−−−− 体力は回復しないがMPは回復。
他にも買おうと思った本が何冊かありましたが、重すぎるので先送り。ATL, COM 関係の書籍は、読もうと思っている順番に並べてあります。 バイブルは INSIDE OLE と MSDN Library かな。
優先順位順
とりあえず ATL で COM は書けるようにはなったけど、まだ仕事に投入するに は理解不足の点が多い。先日購入した書籍は「Essential COM」のみ読了。気 合を入れて、今週末のうちに残りを消化するかね。
個人宛のメールの処理は滞りまくってます。読んだ本について何か書くのも保 留。ストレスに比例して深爪は進行中(見た目が痛々しいが、本人はそうでも なかったり)。
そんな話が出てたのか。
出版社には、私が買いたいと思う書籍(含むコミックス)の多くが絶版になっ ていて、新刊もマイナーどころは一ヶ月もすると探すのが困難という現状をど うにかして欲しい。委託再販制度に浸かりきって、出版社も書店も流通も「自分 の目で品物を見定める」という努力を放棄しているくせに、読者にそんな商品を 買えなんて言う資格はない。
読者の視点に立てないのなら、何を言っても届かないよ。
作家(マンガ家や小説作家を含めて)個人の話となると、話は別。いまの出版 業界の状況だと収入は先細りだから、一部の人気作家を除いては、待遇が徐々 に悪くなるのは避けられない。
ただでさえ将来の保証がない職業なのに、仕事している時期の収入まで限られ たら、才能がある人間でも作家で生活していこうとは思えなくなってしまう。 そうなると結局は出版文化の衰退に繋がるので、避けたいとは思います。
私は良いと思った書籍は新刊で買うようにしてますが、さて、どの程度の役に 立ってるやら。
電話業界のお寒い現状のメールに書いてあった話ですが、某所のコーディング規約に、こういう項目 が入ってるそうです。
当然の帰結として、コードは次のようにコメントで汚染されてる、とのこと。 これで数百万行からなるコードを保守してるというのだから、背筋が凍ります。
/* 2001.5.30 削除開始*/ /* 大量のコメントアウト*/ /* 2001.5.30 削除終了*/
安定したサービスを実現するには、そりゃあ過剰とも思えるハードウェアの多 重化も必要だろうと納得したり>某社
一度 ASP で Server.CreateObject() すると、呼び出した COM を実装してい る DLL, EXE は常駐してしまう。開発中に気軽に DLL を上書きできないと困 るので、方法を探す。
MMC から IIS の規定の Web サイトのプロパティを開いて、アプリケーショ ンの設定タブを選択、「アンロード」ボタンをクリック。これで IIS が読み 込んでいるモジュールを全てアンロードできる。開発中は仮想ディレクトリを 切っておいて、分離プロセスにしておくのが吉かな。