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

Вниз

Работа с COM-объектом (EXCEL, WORD) из консольного приложения   Найти похожие ветки 

 
SergP.   (2005-07-12 16:06) [0]

Не получается сабж. Кто что может подсказать?

Например при запуске проги откомпилированой из такого кода:

program Project2;

{$APPTYPE CONSOLE}

uses
 SysUtils,comobj;

var
MyExcel:Variant;

begin
   MyExcel:=CreateOleObject("Excel.Application");
   MyExcel.WorkBooks.Add;
   MyExcel.Visible:=true;
end.


Получаем исключение. При запуске из Дельфи получаем сообщение типа:

... Не произведен вызов Coinitialize ...

Как сделать чтобы работало?


 
Digitman ©   (2005-07-12 16:09) [1]

как это что ? произвести оной вызов !

перед первым же обращением к олей-механизму .. т.е. перед CreateOleObject()

а после последнего обращения произвести, соответственно, вызов CoUninitialize()


 
Гаврила ©   (2005-07-12 16:18) [2]

Дело в том, что в "обычном" приложении Coinitialize вызывается автоматически, кодом VCL (при подключении соответствующего юнита).
Вследствие этого некоторые программисты на Delphi и не подозревают, что это обязательно


 
Digitman ©   (2005-07-12 16:26) [3]


> некоторые программисты


батонометатели ?)


 
SergP.   (2005-07-12 18:17) [4]

А параметр, который передается  в Coinitialize какой ставить?

function CoInitialize(pvReserved: Pointer): HResult; stdcall;

Т.е. что означает pvReserved?

Пока написал     CoInitialize(nil);

Вроде бы работает. Но все же....


 
DiamondShark ©   (2005-07-12 18:26) [5]


> Пока написал     CoInitialize(nil);

Правильно написал.


 
jack128 ©   (2005-07-12 18:34) [6]

SergP.   (12.07.05 18:17) [4]
А параметр, который передается  в Coinitialize какой ставить?

Хелп принципиально не читаем???


 
SergP.   (2005-07-12 18:53) [7]


> jack128 ©   (12.07.05 18:34) [6]
> SergP.   (12.07.05 18:17) [4]
> А параметр, который передается  в Coinitialize какой ставить?
> Хелп принципиально не читаем???


В хелпе нету вообще упоминания про Coinitialize


 
begin...end ©   (2005-07-12 18:59) [8]

> SergP.   (12.07.05 18:53) [7]

Help -> Windows SDK
или
http://msdn.com

HRESULT CoInitialize(
  LPVOID pvReserved //Reserved, must be NULL
);



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

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

Наверх




Память: 0.48 MB
Время: 0.035 c
15-1148903748
stone
2006-05-29 15:55
2006.06.25
"Разводы" в маршрутках


1-1147859129
Damager
2006-05-17 13:45
2006.06.25
Интерфейс программ


3-1146224798
nv
2006-04-28 15:46
2006.06.25
OleContainer сохранение, открытие из/в TBlobField(ClientDataSet)


2-1149363576
ZV
2006-06-03 23:39
2006.06.25
Sleep


15-1149012642
Bogdan1024
2006-05-30 22:10
2006.06.25
агенства недвижимости - поделитесь опытом