Конференция "Corba" » Проблема в консольном приложении с COM
 
  • Provodnick © (09.03.07 16:37) [0]
    Есть консольное приложение, в котором создается 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.

    Ошибка возникает именно где-то после последней строчки кода. Возможно что-то в финализации модулей. Не знаю даже. Помогите пожалуйста!!!


  • clickmaker © (11.03.07 14:17) [1]
    dsoServer:=nil;
    CoUninitialize;

    ?
  • kealon © (14.03.07 13:17) [2]
    У тебя объект удаляется автоматом после выполнения всех действий в частности
    CoUninitialize; что и приводит к ошибке

    лучше выдели их в отдельный модуль
    ...
    initialization
    CoInitialize(nil);
    finalization
    CoUninitialize;
    end.

    или подцепи ComObj, там это уже делается
    тогда не придётся самому подчищать за собой объекты
    как написали в прошлом примере
 
Конференция "Corba" » Проблема в консольном приложении с COM
Есть новые Нет новых   [134431   +10][b:0][p:0.001]