Установка BDE из собственного инсталятора
От: sublihim Россия  
Дата: 04.12.08 15:32
Оценка:
Доброго времени суток!
Вот вкратце моя проблема:
Есть написанный на С++ инсталлятор. В процессе работы необходимо оттуда запустить установку BDE. запускаю стандартно:



if ( ! CreateProcess(        NULL,
                             Path_BDE_SETUP,
                             NULL,
                             NULL,
                             TRUE,
                             NORMAL_PRIORITY_CLASS,
                             NULL,
                             NULL,
                             &si,
                             &pi)
      )
    {
    MessageBeep( MB_ICONERROR );
    }

    WaitForSingleObject( pi.hProcess, INFINITE );

    CloseHandle( pi.hThread );
    CloseHandle( pi.hProcess );




все бы хорошо, но на WaitForSingleObject — весь процесс замирает, пока не "срублю" поток инсталлятора, тогда и продолжается установка BDE. Я так понял, это происходит из-за того, что инсталшилд вначале стартует виртуальную дос-машину, зачем-то (я смотрел по pi.hProcess ) и WaitForSingleObject ловит его хендл и впадает в бесконечное ожидание...
Кто-нибудь сталкивался с подобным?

Решил сделать по-другому:
"Выковырял" BdeInst.dll, гружу и вызываю DllRegisterServer — и все-бы хорошо, но под WinXP SP3 — возникает ошибка во время регистрации, пишет, что не хватает места на диске и спрашивает, продолжить ли? Когда соглашаешься — то дальше все идет нормально. Но неприятно пугает пользователей. Может кто-нибудь и с этим сталкивался?

09.12.08 01:20: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
bde установка dllregisterserver waitforsingleobject
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.