Если вы используете «сырой C ++», вы получите невероятное количество нудных деталей, о которых вам нужно позаботиться, даже для простого базового класса COM. Безусловно, самый простой способ создать COM-вызываемый класс в C ++ - это ATL, который даже поставляется с мастером (по крайней мере, в VS 2005 и 2008) для этой цели. Мастер выдаст совершенно пригодный для использования класс, включающий подсчет ссылок, регистрацию и один пользовательский интерфейс. Помните, что VB использует позднюю привязку, поэтому вам нужно будет внедрить IDispatch
в своем классе (вы можете использовать ATL IDispatchImpl
, чтобы немного упростить свою жизнь).
Кстати, ATL занимает очень мало места (это библиотека шаблонов) - только среда выполнения VC ++, поэтому не так много зависимостей.