Используя #import
, вы можете получить VC ++ для генерации большого количества кода умного указателя для взаимодействия с COM. Это мой предпочтительный метод автоматизации Office из C ++. Добавьте это в начало вашего исходного файла для генерации файлов и включите соответствующие сгенерированные файлы:
#import "C:\\Program Files\\Common Files\\Microsoft Shared\\OFFICE11\\MSO.DLL"
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"
Очевидно, вам может понадобиться изменить пути к файлам. Вы также можете использовать ID библиотеки типов, что, вероятно, является лучшим решением, если вы работаете в среде с несколькими разработчиками. Существуют и другие проблемы, такие как коллизии имен, и вы должны взглянуть на статью http://www.codeproject.com/KB/wtl/WTLExcel.aspx, в которой все это достаточно хорошо обобщено.
Теперь вы можете использовать Excel через _com_ptr<T>
, _bstr_t
, _variant_t
и другие вспомогательные классы из VC ++.