Visual Studio 2005 & OLE
Мб лучше все сделать на на C++, а на C# или VB.NET? Там работа с COM-объектами и с офисом в частности проще на порядок.
![](/images/graemlins/frown.gif)
![](/images/graemlins/smile.gif)
![](/images/graemlins/smile.gif)
Неохота как-то все заново переписывать...Зачем все переписывать? Напиши этот кусок на шарпе.
а вы уверены, что на C# все будет работать? Сдается мне, что это какой-то внутренний глюк в VS 2005, который может распространяться на все языки...
сюда по ошибкам - это глюки именно C++, просто одни и те же вещи определяются в нескольких местах и чуть-чуть по разному
Или версия экселя не та?
В 2005-й студии действительно есть некоторые глюки по сравнению с 2003. Я в этом убедился, в частности, когда использовал Pthreads под винду.
кстати стоит попробовать убрать настройку no_namespace
![](/images/graemlins/frown.gif)
Оставить комментарий
horseman
Пробую создать класс для Excel или Word при помощи стандартной процедуры в visualStudio 2005: project->add class-> MFC class from typelib->Microsoft Excel 11.0 ... Выбираю класс _Application. Нажимаю ок. Автоматически создается файл CApplication.h, включается в проект. Инклюдю этот файл в один из .cpp при помощи #include "CApplication.h". Делаю build. Вылезает куча ошибок. Причем ошибки возникают в каком-то файле типа excel.tlh.По сравнению с предыдущими версиями visual studio (а именно, 2003, если я не ошибаюсь в автоматически создаваемом файле CApplication.h появляется строка вроде
#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE" no_namespace,
из-за которой и возникают ошибки. Если ее закомментировать, то ошибки исчезают.
И еще автоматически создается файл excel.tlh, в котором и возникают ошибки.
Вариант с комментированием строки #import... не очень хорош, потому что, видимо, там определяются некоторые типы данных, которые потом используются в классах Workbooks и workbook.
Вот кусочек возникающих ошибок:
1>e:\irisha\ржд\rsg\capplication.h(3) : warning C4278: 'RGB': identifier in type library 'C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE' is already a macro; use the 'rename' qualifier
1>e:\irisha\ржд\rsg\capplication.h(3) : warning C4278: 'RGB': identifier in type library 'C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE' is already a macro; use the 'rename' qualifier
1>e:\irisha\ржд\rsg\capplication.h(3) : warning C4192: automatically excluding 'IFont' while importing type library 'C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE'
1>e:\irisha\ржд\rsg\debug\excel.tlh(1219) : error C2371: 'FontPtr' : redefinition; different basic types
1> c:\program files\microsoft visual studio 8\vc\include\comdef.h(312) : see declaration of 'FontPtr'
1>e:\irisha\ржд\rsg\debug\excel.tlh(1297) : error C2786: 'BOOL (__stdcall *HDC,int,int,int,int)' : invalid operand for __uuidof
1>e:\irisha\ржд\rsg\debug\excel.tlh(1297) : error C2923: '_com_IIID' : 'Rectangle' is not a valid template type argument for parameter '_Interface'
1> c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h(3514) : see declaration of 'Rectangle'