EssentialCOM
会社の先輩に借りて読み始めた。
- 1章 より良いC++としてのCOM
- C/C++ってソースコードの流用が考えられてる。
- 一般的な流用の仕方は普通ソースコードを配布することだ。
- でも、そうすると、同じライブラリコードが別々のアプリケーションに入ってしまい、要領的に無駄がかなり出るし、クラスとかでモジュール管理してるのに意味ないじゃん。
- この問題を解決できる技術にDLLというものがある。しかし、C++はバイナリレベルではマトモな標準が無いから、同じコンパイラじゃないとDLLのリンクエラーが発生するので問題だ。
- カプセル化にも問題がある。C++はバイナリレベルでのカプセル化は考慮されていない。(DLLのバージョン管理の話で喩え話があった。結局、DLLバージョンナ番号付きで管理されていて意味ないじゃんという話。)
- クラスのインターフェースと実装を分離し、ハンドルクラスにて実装を管理する実装にすれば解決するが、インターフェースから実装呼び出しの転送ルーチンがオーバーヘッドになるなど、問題は無い訳ではない。
とりあえす、ここまでで1章の1.5が終了。
まだ実装云々に入ってないからか、読みやすい。