Re: #import и MS Office XP
От: e-yes Россия http://e-yes.nm.ru
Дата: 29.10.02 19:31
Оценка:
Здравствуйте kirsav, Вы писали:

K>Привет, All


K>Не работает код примера http://www.rsdn.ru/article/default.asp?vcpp/import.xml
Автор(ы): Игорь Ткачёв
Дата: 9.03.2001

В данной статье приводится объяснение работы директивы #import
компилятора Visual C++ и даны примеры её использования с
MS Word, MS Excel, ADO DB и ActiveX Control.
c MS Office XP Rus.

K>Делаю так:
K>// Office.h

K>// for MS Office XP

K>#import "C:\Program Files\Common Files\Microsoft Shared\Office10\mso.dll"
K>#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB"
K>#import "C:\Program Files\Microsoft Office\Office10\XL5en32.OLB" \
K> rename("DialogBox","_DialogBox") \
K> rename("RGB","_RGB") \
K> exclude("IFont","IPicture")

K>// Exempl.cpp

K>#include "stdafx.h"
K>#include <stdio.h>
K>#include "office.h"

K>void main()

K>{
K> ::CoInitialize(NULL);
K> try {
K> using namespace Excel;
K> ApplicationPtr excel(L"Excel.Application");
K> excel->Visible = true;
K>
K> // создаём новую книгу
K> WorkbookPtr book = excel->Workbooks->Add(); // здесь ошибка
K>…
K>} catch (_com_error& er) {
K>// обработка исключений
K>…
K>}
K>::CoUninitialize();
K>}

K>Не хочет компилироваться строка WorkbookPtr book = excel->Workbooks->Add()

K>В *.tlh видно, что Workbooks теперь не свойство как в MS Office 97 или 2000, а метод.
K>_variant_t Workbooks(const _variant_t & Index=vtMissing)

excel->>Workbooks() компилируеся, но при выполнении вылетает с исключением.

K>Вообщем, никак не пойму как создать новую книгу. Кто делал, подскажите pls.


K>C 97м все работает, проверял.


У меня excel->Workbooks->Add(); и компилируется и работает. Дело, скорее всего, в импорте, я его делаю так:

#import "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" \
        rename("DialogBox","_DialogBox") \
        rename("RGB","_RGB") \
        exclude("IFont","IPicture")
Damn I'm good
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.