Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Exception в консольнике при использовании Com-объектов / 18 сообщений из 18, страница 1 из 1
15.01.2004, 11:01
    #32376708
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Вот сорс
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
program PrjConsExcept;
{$APPTYPE CONSOLE}
uses SysUtils, ActiveX, ComObj;
var s :string;    iConv :IDispatch;
begin
  CoInitialize(nil);
  s:='';
  try
  try
    iConv := CreateOleObject('MSXML.DOMDocument');
    Writeln('One');
    Writeln('Two');
    raise Exception.Create('Babah!');
    OleVariant(iConv).load('d:\work\para\sampleconv.xml');
    Writeln('Three');
  finally
    iConv := nil;
    CoUninitialize;
  end;
  except
    on e:Exception do begin
      s := e.Message;
    end;
  end;
  if s<>'' then Writeln(s);
  Writeln('Fin');
end.

Если закомментировать все связанное с COM, то все работает. Иначе программа отрабатывает до строки Writeln('Fin'); и вылетает с аксес виолейшаном...
Помоготе разобраться!
...
Рейтинг: 0 / 0
15.01.2004, 11:16
    #32376728
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
версию дельфи скажи
в 5 и 7 все работает нормально
...
Рейтинг: 0 / 0
15.01.2004, 11:27
    #32376757
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Делфа 5. Работает в отладчике. Да. Работает при запуске из командной строки? Нет.
ОС - Win2000 prof sp2
...
Рейтинг: 0 / 0
15.01.2004, 11:32
    #32376767
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
в конце Exception не вываливается, если убрать создание объекта. Видимо я его не так освобождаю... может функцию какую дополнительно надо вызвать?
...
Рейтинг: 0 / 0
15.01.2004, 11:48
    #32376800
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
program PrjcomExcept;
uses  Forms, SysUtils, ActiveX, ComObj;
{$R *.RES}
var s :string;
    iConv :IDispatch;
begin
  Application.Initialize;
  Application.Run;
  CoInitialize(nil);
  s:='';
  try
  try
    iConv := CreateOleObject('MSXML.DOMDocument');
    Application.MessageBox('One','', 0 );
    Application.MessageBox('Two','', 0 );
    raise Exception.Create('Babah!');
    OleVariant(iConv).load('d:\work\para\sampleconv.xml');
    Application.MessageBox('Three','', 0 );
  finally
    iConv := nil;
    CoUninitialize;
  end;
  except
    on e:Exception do  s := e.Message;
  end;
  if s<>'' then Application.MessageBox(PChar(s),'', 0 );
  Application.MessageBox('Fin','', 0 );
end.

Такая фигня, не консольник отрабатывает на ура.... вот.....
...
Рейтинг: 0 / 0
15.01.2004, 12:23
    #32376873
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
ну что никто не знает в чем проблема?
...
Рейтинг: 0 / 0
15.01.2004, 12:28
    #32376886
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
кривой код значит
...
Рейтинг: 0 / 0
15.01.2004, 12:32
    #32376899
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
похоже этому MSXML.DOMDocument нужен message loop
...
Рейтинг: 0 / 0
15.01.2004, 12:45
    #32376927
ZrenBy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Обсуждение некоего подхода к CoInitialize() снизу\r
\r
/topic/68050
...
Рейтинг: 0 / 0
15.01.2004, 12:55
    #32376952
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
2 KirillovA с вашей манией величия можете в этот топ не заходить. То же мне умник.

2 srf2000 дело не в MSXML.DOMDocument. Я натолкнулся на эту ситуацию в другой программе, где вызывал свой COM-объект. Думал у меня объект кривой. Создал с нуля новый проект, где создаю довольно стабильный по-моему объект MSXML.DOMDocument. Дело даже не в этом.
Такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
program PrjConsExcept;
{$APPTYPE CONSOLE}
uses SysUtils, ActiveX, ComObj;
var iConv :IDispatch;
begin
  CoInitialize(nil);
    iConv := CreateOleObject('MSXML.DOMDocument');
    Writeln('One');
    Writeln('Two');
    Writeln('Three');
    iConv := nil;
    CoUninitialize;
  Writeln('Fin');
end.

Дает такой результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
program PrjConsExcept;
{$APPTYPE CONSOLE}
uses SysUtils, ActiveX, ComObj;

var s :string;
    iConv :IDispatch;
begin
  // Insert user code here
  CoInitialize(nil);
  s:='';
//  try
//  try
    iConv := CreateOleObject('MSXML.DOMDocument');
    Writeln('One');
    Writeln('Two');
//    raise Exception.Create('Babah!');
//    OleVariant(iConv).load('d:\work\para\sampleconv.xml');
    Writeln('Three');
//  finally
    iConv := nil;
    CoUninitialize;
{  end;
  except
    on e:Exception do begin
      s := e.Message;
    end;
  end;
//  CoUninitialize;
  if s<>'' then Writeln(s);}
  Writeln('Fin');
end.
...
Рейтинг: 0 / 0
15.01.2004, 13:05
    #32376979
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
замени "довольно стабильный по-моему объект MSXML.DOMDocument" на например Excel.Application и почувствуй разницу
...
Рейтинг: 0 / 0
15.01.2004, 13:09
    #32376984
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
упс... не то скопировал...
Код: plaintext
1.
2.
3.
4.
5.
6.
{One
Two
Tree
Fin
Exception EAccessViolation in module PrjConsExcept.exe at 0000450A.
Access violation at address 0040450A in module 'PrjConsExcept.exe'. Read of addr
ess 00EFAD98.}
...
Рейтинг: 0 / 0
15.01.2004, 13:32
    #32377022
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Почувствовал. Но в чем подвох?
...
Рейтинг: 0 / 0
15.01.2004, 13:36
    #32377029
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
я свое предположение высказал... а зачем именно консольное приложение?
...
Рейтинг: 0 / 0
15.01.2004, 14:04
    #32377090
KirillovA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
> vvHedgehog
спасиба
...
Рейтинг: 0 / 0
15.01.2004, 14:14
    #32377107
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
2 srf2000 Придется теперь без него.
Но не суть. Мне теперь уже принципиально интерестно в чем дело.
Читал топ предложенный ZrenBy. Там я понял обвиняют CoInitialize. Пробовал вызов ее засовывать в отдельный блок (в процедуру), не помогло....
...
Рейтинг: 0 / 0
15.01.2004, 14:45
    #32377155
srf2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
гы :)
если не вызывать CoUninitialize, то все нормально...
...
Рейтинг: 0 / 0
15.01.2004, 14:55
    #32377174
vvHedgehog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Exception в консольнике при использовании Com-объектов
Действительно.....
Вот опять дядя Билли виноват....

Спасибо.

Только рисково как-то..... я уж лучше без консольника...
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Exception в консольнике при использовании Com-объектов / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]