Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.07.06;
Скачать: CL | DM;

Вниз

Ф-ция, возвращающая указатель на СОМ-сервер   Найти похожие ветки 

 
TStas ©   (2008-05-20 14:41) [0]

Возвращает его криво и нестабильно. Я писал что-то с экселем, кажется, сетку в него экпортировал, и, почему-то, при попытке создавать СОМ-сервер в ф-ции, возвращающей его, как результат, всё переставало работать.
Вопрос задал, потому что мне и сейчас нужно в Ворд с Экселем данные отправлять. Заметил, что в книжках Ворд и Эксель - почему-то глобальные переменные. Мне это сразу бросалось в глаза и казалось странным, ведь пользователь может закрыть Ворд или Эксель, а тогда всё сглючится. Пробовал передавать указатель на эксель как результат ф-ции, либо совсем переставало работать или, что еще хуже, работало не везде.
Спрашиваю из чистого любопытства: почему так получается? Код привести не могу, т. к. он давным давно стёрт как глючный.


 
Palladin ©   (2008-05-20 14:43) [1]

это у тебя позднее связывание сработало...


 
TStas ©   (2008-05-20 14:50) [2]

Это я понимаю, что позднее, но почему оно сработало так странно?


 
Palladin ©   (2008-05-20 14:52) [3]

не знаю :) я не психолог...


 
Сергей М. ©   (2008-05-20 15:22) [4]


> при попытке создавать СОМ-сервер в ф-ции, возвращающей его,
>  как результат, всё переставало работать


> Код привести не могу, т. к. он давным давно стёрт


Догадываюсь как она выглядела:

function CreateExcelApplicationObject: OleVariant;
begin
 try
   Result := CreateOleObject("Excel.Application");
 except
   Result := "всё перестало работать";
 end;
end;


 
tesseract ©   (2008-05-20 16:12) [5]


> Заметил, что в книжках Ворд и Эксель - почему-то глобальные
> переменные.


В книжках примеры приводят, а не рабочий код.


> Result := CreateOleObject("Excel.Application");


Он же про COM говорит, а не про OLE. Там принято IUknown-ами кидаться.


> Пробовал передавать указатель на эксель как результат ф-
> ции, либо совсем переставало работать или, что еще хуже,
>  работало не везде.


Не "указатель", а "интерфейс".


 
Сергей М. ©   (2008-05-20 16:41) [6]


> tesseract ©   (20.05.08 16:12) [5]


Без разницы.
Excel-сервер в любом случае представлен диспинтерфейсом.


 
TStas ©   (2008-05-20 18:59) [7]

Извините, конечно, ОЛЕ, а не СОМ.


 
Сергей М. ©   (2008-05-20 19:28) [8]


> TStas ©   (20.05.08 18:59) [7]


Следует четко понимать разницу между ними (т.е. технологиями)


 
tesseract ©   (2008-05-20 20:28) [9]


> Следует четко понимать разницу между ними (т.е. технологиями)


IDispatch в приниципе. И вся разница.



Страницы: 1 вся ветка

Текущий архив: 2008.07.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
15-1211271685
kla$1
2008-05-20 12:21
2008.07.06
Microsoft SQL Server 2000


2-1213006225
ciborg
2008-06-09 14:10
2008.07.06
Файл занят другим приложением


15-1211486281
BlueDragon
2008-05-22 23:58
2008.07.06
Задание с ЕГЭ 2008


2-1212990723
Mishenka
2008-06-09 09:52
2008.07.06
Как сделать панель наподобие инспектора объектов в Delphi ?


15-1211528405
Дмитрий С
2008-05-23 11:40
2008.07.06
irq