Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
dmChromium 1.7.196 Движок браузера Chromium для Neobook.
Подробнее см. встроенную справку (/Help/index.html)
Для чего это - использование движка Chromium вместо обьекта WebBrowser (с системным движком Internet Explorer) - библиотеки движка встроены в плагин и независимы от версии системных библиотек (как в случае со штатным обьектом браузера) - таким образом, контент браузера будет отображаться одинаково вне зависимости от версии IE в системе (как в случае со штатным обьектом браузера), а также всегда будет поддержка HTML5/CSS3.
Что нужно для запуска - Windows XP/7/8 - Microsoft .NET Framework 4.0 и выше, придется проверить и обновить в центре обновления Windows или скачать. Включен по умолчанию только с восьмерки (4.5), в семерке по умолчанию версия 3.5 (нужен плагину)
Для подробностей смотри эту тему, замечания и предложения можно отписывать там же.
Как тестить - Библиотеки подключаются при старте страницы, отключаются при выходе. Вручную это можно сделать кнопками ON/OFF. - После успешного подключения тыкнуть на вкладку, должен создаться браузер с тестовой страницей, далее как обычно. Можно тыкать на кнопки. - Можете потестить как отрабатывают события на подпрограммах - Без подключенных библиотек тыкать не надо, ошибки будут
Известные баги - Плагин пока несовместим с некоторыми плагинами от NeoSoft (NeobookDB, NeobookDX), они валятся с ошибкой при запуске. Уж не знаю чего там такого, но факт... Пока причины этого неизвестны. - При отключении библиотек заодно закрывается и само окно программы. - Может еще чтото осталось, не помню уже. Сообщайте.
придется проверить и обновить в центре обновления Windows или скачать
При попытке УСТАНОВКИ плагина в NB на чистой хрюше (в которой вообще не установлены обозначенные. "приблуды"), вылетает сообщение об ошибке "не найден указанный модуль", т.е. даже к NB в этом случае плагин не подключить в принципе. Видимо плагин при подключении к NB (инициализация как библиотеки), что-то динамически подгружает для своей работы. Похоже что и это:
ЦитатаDEMBEL ()
несовместим с некоторыми плагинами от NeoSoft (NeobookDB, NeobookDX), они валятся с ошибкой при запуске.
из той же оперы "инициализации", так сказать "столкновение интересов". Поэтому попробуй порыть в направлении DllMain, а заодно посмотреть в исходниках модулей плагина на какие функции внешних библиотек ссылается код, и что возможно подгружается.
На остальном пока не проверял.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я проверял не дома, а на работе - на "приемочном" компе, там хрюша чистая. Дома пока не проверял.
ЦитатаDEMBEL ()
ошибка возникает в неософтовских плагинах то!
Да, но по чьей вине?
Не исключено, что эти плагины тоже что-то делают в DllMain (теоретически это возможно). Но, я - далеко не "мастер", могу и ошибаться... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
причем с другими net плагинами все ок дружат, а с этим вылетают. Ну без разработчиков неософтовых тут ничего нельзя сказать.
Добавлено (15 Июля 2015, 18:34) --------------------------------------------- у меня вообще нет dllmain, net контролирует все начиная с точки входа, и она вообще общая для всех приложений, и лазить туда нет смысла, и сидит она в mscoree.dll под именем _CorDllMain. Да и даже условно помешать плагины друг другу не могут, в net память изолирована, там свой менеджер памяти. Я думаю это с++ библиотеки движка чтото творят, я тут ни при чем. Придется там покопаться. Я наоборот ожидал конфликтов между несколькими загруженными net плагинами, это легко может быть, а тут... Как задавать вопросы
Я думаю это с++ библиотеки движка чтото творят, я тут ни при чем. Придется там покопаться.
По сути, я тебе это и предлагал - посмотреть кто и что делает на стадии инициализации. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
легко сказать... ошибка возникает при инициализации библиотек движка, даже когда неософтовский плагин уже загружен и работает (если выкинуть загрузку движка при старте страницы и нажать ON).
На хрюше кстати нет такой ошибки. И по ходу, виной всему древний пакер AsPack 2.12 которым заделаны эти плагины, он косячит на новых x64 виндах. Пытался распаковать - неудачно... Как задавать вопросы
Все неософтовские плагины по моему upx запакованы.
Чего-то там из плагинов было у них ASPack-ом упаковано, но что именно не помню. Кстати, необушные проекты вплоть до версии NB 5.5.4 тоже упаковывались ASPack-ом, а потом начали упаковывать UPX-ом.
ЦитатаDEMBEL ()
Пытался распаковать - неудачно...
А зачем? Это ничего не даст даже если подтвердится вина пакера, т.к. у дригих-то необукеров эти плагины все-равно будут упакованы. Все-таки проблему надо искать в собственном плагине, т.е. явно в нем что-то не так (если рассуждать последовательно, т.е. что изменилось).
ЦитатаDEMBEL ()
если выкинуть загрузку движка при старте страницы и нажать ON)
Вот как оказывается, а я думал, что слетает при загрузке NB. Но, только мне думается, что навряд ли пакер виноват, поскольку файл распаковывается в память при запуске, и дальше пакер "отключается". Это протекторы мудрят, а с пакерами все проще. Хотя... Всякое бывает... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Сейчас потестил на собственной хрюше... Если делать все "аккуратно" (как написано в "инструкции"), то все работает, но если чуток поупражняться с кнопками "On"/"Off", без тыканяья в кнопки "броузер", то выскакивают ошибки на подобие этой:
и дальше при закрытии приложения, оно остается висеть в "процессах". Проц и память не грузит, но висит.
ЦитатаDEMBEL ()
это баг, я еще не добрался до него
В общем, пока предметно остальное тестить рано, поскольку нужно отработать инициализацию / деинициализацию, а без этого нормальная работа просто невозможна будет, увы...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
нефиг упражняться ) чтобы отключение прошло успешно, нужно создать браузер. Собственно пока не создашь браузер, библиотеки движка не начнут работать, соотв-но отключать будет нечего, но если все же сделать это можно испортить состояние флагов. В процедуре инициализации не происходит как таковой загрузки библиотек в привычном смысле. Инициализация тут означает задание стартовых параметров для браузера и проверка наличия всех зависимых библиотек, когда все проверено и ок, ставится флаг что все ок можно создавать браузер, и только тогда библиотеки собственно стартанут, причем по запросу а не вручную.
А вот процедура отключения - это наоборот, в привычном смысле - физическая выгрузка всего, уничтожение обьектов и тп, при этом тоже ставятся флаги. Поэтому просто затыкивая on off приведет к конфликтам между фактическим состоянием библиотек и внутренними флагами -> ошибки.
чтобы отключение прошло успешно, нужно создать браузер.
ЦитатаDEMBEL ()
В процедуре инициализации не происходит как таковой загрузки библиотек в привычном смысле.
Вот оно как... Как все запущено однако...
Несколько странная схема (во всяком случае мне непонятная по смыслу), хотя может в этих нет-технологиях свои приемы, и так делать удобнее или проще. Я же действую по-старинке, т.е. классически через LoadLibrary и т.д. Писанины в этом случае, конечно, море, но зато задействуешь чужой код (функции библиотеки) напрямую без "посредников", и сам можешь конструировать из этих функций что угодно.
Впрочем, люди мыслят по-разному - я не понял твою схему, а мишем не понял мою.
ЦитатаDEMBEL ()
Поэтому просто затыкивая on off приведет к конфликтам между фактическим состоянием библиотек и внутренними флагами -> ошибки.
А что, так трудно проверить состояние "флагов", и действовать соответственно. Если нельзя проверить "внутренние флаги" (что маловероятно), то организуй свои собственные.
ЦитатаDEMBEL ()
в привычном смысле - физическая выгрузка всего, уничтожение обьектов и тп,
А ты уверен, что выгружаются все библиотеки? Хотя, на закрытии приложения все-равно все выгрузится, так-что это не особо критично.
С тем же VLC я тоже сначала думал, что он сам выгружает все, что сам же и подгрузил (он это делает самостоятельно по мере необходимости в процессе работы), а оказалось что нет - нихрена он не выгружает (пока запущен процесс, в который загружены библиотеки), и потому мне пришлось организовывать принудительную выгрузку всего того добра (для zmVlcFree), которое он сам уже нагрузил, помимо того, что я сам загружаю, а иначе не получилось бы сменить оперативно версию VLC, да и полного освобождения ресурсов тоже бы не было, и тогда это "оперативное" Free просто теряло смысл. С Bass так вообще все надо делать вручную, и автоматом ничего не подгружается и не выгружается. Собственно это - идеальная схема (полный контроль), но писанины - с ума сойдешь. А вообще опыт работы с Bass мне очень помог при окучивании VLC.
ЦитатаDEMBEL ()
добавлю еще "защиты от дурака"
Вот об энтом при создании плагинов надо думать в первую очередь, т.к. с NB скорее всего будут работать люди не избалованные опытом в программировании, они "по струнке" не ходят, и нагородить смогут такого, что... И не расхлебаешь!...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
добавлять ON/ OFF это я поторопился, т.к. еще есть баг когда при успешной выгрузке закрывается и само приложение. да и вообще это не предназначено для затыкивания, по смыслу активация должна происходить только один раз, как и деактивация (при закрытии приложения). Если надо уничтожить браузер - кнопка с крестиком. Вот я бы на твоем месте например потестил, уничтожает она заданный браузер или нет (может грохнуть текущий например), или события. Отстань от этих кнопок пока что )
ЦитатаPeter ()
А что, так трудно проверить состояние "флагов", и действовать соответственно. Если нельзя проверить "внутренние флаги" (что маловероятно), то организуй свои собственные.
Там они и проверяются, а ты их смущаешь, и они не мои. При неудачной выгрузке все равно ставится флаг IsInitialized = False, и потом пошло-поехало... Надо просто еще добавить своих на такой случай. Но ничего, ты нашел потенциальный баг, это нужно исправить. Как задавать вопросы
Вот я бы на твоем месте например потестил, уничтожает она заданный браузер или нет
Что именно ты имеешь ввиду и мне надо проверить. По сути, я могу только через какой-нибудь оконный шпион проверить существование окна броузера, и все.
ЦитатаDEMBEL ()
При неудачной выгрузке все равно ставится флаг IsInitialized = False,
Попробуй тогда EnumProcessModules, только эта функция вернет все модули, подключенные к процессу, и надо отыскать среди них свои, а потом - GetModuleHandle (а не тот, что вернет функция) и FreeLibrary для каждого.
ЦитатаDEMBEL ()
Но ничего, ты нашел потенциальный баг, это нужно исправить.
Это только один. Знаешь сколько их там ещё впереди?... Подобный "комплексный" плагин, это не "командная строка", и даже не чудо по имени zmFunctions, где накидал кучу всяких разнобойных функций, и дело в шляпе. Тут увязывать придется массу вещей, и чем больше опций, тем больше связей. А поначалу кажется, что типа фигня, за пару вечеров нашлепаю. Ага, держи карман шире!
Век живи, век учись!
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться