Главная страница
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.018 c
15-1211227922
Житель_форума
2008-05-20 00:12
2008.07.06
E-mail - > сайт


15-1211658820
Житель_форума
2008-05-24 23:53
2008.07.06
Перенос домена *msk.su


3-1201682750
Tack
2008-01-30 11:45
2008.07.06
Прогресс выборки TADOQuery нерегулярный


15-1211364664
Prohodil Mimo
2008-05-21 14:11
2008.07.06
Вопрос к тем, кто в Германии !


2-1212490763
alex-drob
2008-06-03 14:59
2008.07.06
TTcpClient в оддельный паток