![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема в консольном приложении с COM
Provodnick © (2007-03-09 16:37:00)Есть консольное приложение, в котором создается OLE-объект. Все нормально отрабатывает. Но при завершении приложения стабильно выдается ошибка
Exception EAccessViolation in module oleaut32.dll at 00004915.
Access violation at address 77114915 in module 'oleaut32.dll'. Read of address 1
3A798E0.
Код программы примерно следующий:
program Install;
{$APPTYPE CONSOLE}
uses
SysUtils, Windows, Registry, ActiveX, ComObj, Classes;
.......
CoInitialize(nil);
dsoServer:=CreateOleObject('DSO.Server');
.......
CoUninitialize;
......
end.
Ошибка возникает именно где-то после последней строчки кода. Возможно что-то в финализации модулей. Не знаю даже. Помогите пожалуйста!!!
kealon (2007-03-14 13:17:00) [1]У тебя объект удаляется автоматом после выполнения всех действий в частности
CoUninitialize; что и приводит к ошибке
лучше выдели их в отдельный модуль
...
initialization
CoInitialize(nil);
finalization
CoUninitialize;
end.
или подцепи ComObj, там это уже делается
тогда не придётся самому подчищать за собой объекты
как написали в прошлом примере
clickmaker (2007-03-11 14:17:00) [2]dsoServer:=nil;
CoUninitialize;
?