Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: WinAPI и системное программирование > Chromium не работает из dll |
Автор: Gwire 6.2.2021, 11:48 | ||
Приветствую. У меня на руках имеется немаленький проект который после запуска от памяти откусывает сходу 170Мб. И до недавно в проекте использоваться TWebBrowser. Но он перестал удовлетворять требованиям к работоспособности. Было решено использовать Chromium. Переклепал программу на другой компонент и все как бы работает, но "дерево" получилось не "вечно зеленое" а "вечно голодное". В проекте используется 6 экземпляров TChromium каждый из них запускает по 2-3 процесса-клона программы по 170Мб. Просто на ровном месте минус 170Мб*6*2 ~= 2Гб. Решил сделать ход конем и убить 3х зайцев разом. Один из зайцев - уменьшение размера запускаемого приложения. Идея заключается в том чтобы разделить проект на dll которые динамически будет подгружать основная программа. Если в общем - сделал из главного модуля процедуру Main и экспортировал ее. Получилась вместо exe-шника dll-ка с точкой хода Main. Ничего не предвещало беды. Программа запускается с 10Мб и работает. После GlobalCEFApp.StartMainProcess создает клонов размером 3..8Мб (dll-ка в этих случаях не подгружается). Профит... Но внезапно: Chromium1.CreateBrowser в такой конфигурации перестал создавать браузер. Пробовал выполнить в Main:
Сижу репу чешу. У кого-то есть какие то идеи как убедить CreateBrowser таки создавать браузер. |
Автор: _zorn_ 2.4.2021, 20:38 |
> У кого-то есть какие то идеи как убедить CreateBrowser таки создавать браузер. Переписать на QT/electron ![]() |