Вниз
Скачать: CL | DM;

Работа с Excel через OLE   Найти похожие ветки 

 
Koloto   (2003-06-27 09:14) [0]

Приложение (правда, на Билдере 5.0) создает объект Excelя и работает с ним. После конца работы (даже после закрытия приложения) Ексель остается открытым, чтоб юзер мог посмотреть, что там прога натворила.
Приложение многопоточное, объект Екселя создается через CreateOleObject, вся работа с ним ведется через Variant путем вызова OLE-шных функций и свойств, все внутри одного потока.
Пока Ексель остается открытым, все работает отлично. Но как только юзер закрывает его (независимо от того, открыто еще приложение или нет), вылетает ошибка:

"Инструкция по адресу ... обратилась к памяти по адресу ... Память не может быть "read" "

Не подскажите, в чем может быть проблема?


 
kudatsky   (2003-06-27 09:24) [1]

Если у тебя Excel 97, инстолируй Excel 97 SR2,
а лучше 2000


 
andrey_pst ©   (2003-06-27 10:49) [2]

ссылки на все объекты Excel"я убиваешь ?
например,
xlsApp := UnAssigned;


 
Koloto   (2003-06-27 12:05) [3]

Спасибо всем.
Проблема решилась путем использования OleInitialize / OleUninitialize. Оказывается при работе с OLE в многопоточном приложении надо вызывать эти функции.
Интересно, что в борландовском хелпе (по крайней мере к Билдеру 5.0) ничего про это не сказано.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.017 c
6-31384
alt7
2003-05-05 14:38
2003.07.10
TIdTelnet читать из буфера


14-31439
BaRToV
2003-06-21 02:40
2003.07.10
Как будет выглядить ASM втавка:


9-31066
Mihey
2003-01-25 22:20
2003.07.10
Здания в изометрии.


1-31309
Serginio
2003-06-26 15:07
2003.07.10
Просвятите на что содержит ссылку переменная типа Interface


1-31240
Andrey02
2003-06-28 19:39
2003.07.10
Thread поток - метод Synchronize. Качество программы.




   Наверх