コンポーネント化といっても程度によりけりですよね。

部品を他のプログラムからも利用したい
→VB、ATL、MFC、etc…汎用を目指す
 →ActiveX
→Borland開発環境に限定してOK
 →VCLコンポーネント
→C#、VB.NET、etc…マネージド言語から使えればいい
 →.NETコンポーネント
→静的リンクできればそれでいい
 →単にC++のクラスとして作る

えとせとら