#import и MS Office XP
От: kirsav  
Дата: 28.10.02 18:07
Оценка:
Привет, All

Не работает код примера 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.
Делаю так:
// Office.h

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

// Exempl.cpp
#include "stdafx.h"
#include <stdio.h>
#include "office.h"

void main()
{
::CoInitialize(NULL);
try {
using namespace Excel;
ApplicationPtr excel(L"Excel.Application");
excel->Visible = true;

// создаём новую книгу
WorkbookPtr book = excel->Workbooks->Add(); // здесь ошибка

} catch (_com_error& er) {
// обработка исключений

}
::CoUninitialize();
}

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

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

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

C 97м все работает, проверял.
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
Re[2]: #import и MS Office XP
От: kirsav  
Дата: 31.10.02 12:14
Оценка:
Здравствуйте e-yes, Вы писали:

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


EY>#import "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" \

EY> rename("DialogBox","_DialogBox") \
EY> rename("RGB","_RGB") \
EY> exclude("IFont","IPicture")

Точно. Заработало. Спасибо за помощь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.