|
Заблокирован
|
|||||||||||||||||||||
Awesomium - для C++ Builder, или Как в Билдере использовать DLL, написанные в MSVC, если coff2omf не помогает07.05.2017, 14:18. Показов 5257. Ответов 3
Метки нет (Все метки)
Потребовалось разработать приложение типа "браузер" на C++ Builder, что я делаю нечасто, потому что неактуально.
Специально поставил новейшую RAD Studio 10.2 Tokyo. Осталось выбрать движок... Первое, что попробовал, это Awesomium, который понравился, когда юзал на C#. С хедерами - все ОК, нигде не ругается. Но, с awesomium.lib возникла проблема - линковщик ругается, что она в формате COFF, а Билдеру надо OMF. Прошелся по нему специальной утилитой из Билдера:
Не по теме: Отложил Awesomium и попробовал CEF через DCEF (это враппер под Delphi), он быстро завелся, но, мне не понравился - какой-то сырой, мелкие шероховатости, доков на враппер нет, PepperFlash пришлось вручную добавить (выдернул прямо из своего браузера), да и весит слишком много... В общем, вернулся опять к Awesomium... Еще попробовал утилиту implib:
Тут уже, решил разобраться в причине. Даже, создал 4 тестовых проекта в Студии и в Билдере (в них я выдернул 1 структуру Awesomium::Rect, она совсем маленькая), чтобы нагляднее все увидеть. DependencyWalker подтвердил мои предположения - да, корень проблемы - в самой DLL. Awesomium скомпилирован в MSVC, у нее свой формат декорации. Например, так выглядит конструктор Awesomium::Rect(void):
Второе - правильнее, и, это можно сделать вручную, но, в awesomium.dll всего около 900 функций... Разумеется, нужно как-то автоматизировать процесс. Подумал, что нужны какие-то доп. опции для coff2omf и implib... Какие именно - неясно, и LIB не знаю где нормально посмотреть, только методом тыка... Так и сделал - для coff2omf проверил все 3 опции -lib:xx, и для implib тоже все опции, что есть - ни одна ни помогла... Неужели Embarcadero до сих пор не сделали для этого утилиты? Сторонних утилит я не нашел, ведь спецификаций на свою декорацию они тоже нигде не выложили... Видимо, остается только писать свой алгоритм парсера (в данном случае это конечный автомат), и, с помощью метода тыка и/или реверс-инжиниринга компилятора Билдера выявить все возможные элементы... Но, я сомневаюсь, что Embarcadero купит у меня утилиту, если сделаю А взвалить все это на плечи какого-то одного заказчика - как-то неудобно ![]() Или, я, все-таки, что-то упускаю?
0
|
|||||||||||||||||||||
| 07.05.2017, 14:18 | |
|
Ответы с готовыми решениями:
3
Можно ли модули, написанные на Python, использовать в программе, которая пишется на Delphi? И если можно, то как? Как использовать компоненты скомпилированные для C++ Builder 2007 в C++ Builder 2010? Исходники программ на билдере, написанные в классах |
|
0 / 0 / 0
Регистрация: 14.04.2017
Сообщений: 9
|
|
| 08.05.2017, 15:02 | |
|
Смолевич, подскажите пожалуйста,
как CEF добавить в Builder (у меня RAD Studio 10 Seattle)? Скачал последнюю версию с http://opensource.spotify.com/cefbuilds/index.html но не могу разобраться как ее в Builder встроить. Инфа по компоненту TChromium на форуме устарела. В дистрибутиве нет файлов *.dproj и *.dpk, чтоб добавить в Delphi, а потом уже в Builder как описано в Где скачать компонент TChromium и как его установить?
0
|
|
|
Заблокирован
|
|
| 08.05.2017, 15:30 [ТС] | |
|
mrOzzo, Я же написал... Через DCEF... Буква D - о чем-то говорит?
Там и *.dpk враппера для разных версий Delphi, и сам cef... Собрал BPL, подключил к C++ Builder... Подробный урок для одного вас я писать не собираюсь, зачем вам это эмбаркадеро? У вас 5 лет разработки на ней и мегабайты кода за плечами? Если нет, то лучше бы выкинули свой синдром утенка и занялись .NET... Это кажется тяжелее, но, ИМХО, все говорит о том, что это лучше, чем регулярно убивать минуты на решение "сложнейших" проблем типа "проверить запущен ли процесс" (на C# это делается в 1 строчку, на Билдере - танцы с WINAPI)... P.S. Последний DCEF - двухлетней давности... Возможно, стоит заменить в нем сами DLL на поновее, но какой смысл когда в Билдере все остальное не лучше, уже забил, пишу на C# и WPF.
0
|
|
|
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
|
||
| 11.05.2017, 12:44 | ||
|
Добавлено через 8 минут Правда он не будет работать на Windows XP, для него нужно брать 2454
0
|
||
| 11.05.2017, 12:44 | |
|
Помогаю со студенческими работами здесь
4
Можно ли использовать C++ Builder v11 если купить Embarcadero C++Builder XE8
Как вызывать библиотеки dll, написанные на C# Как можно использовать функции написанные на луа Как использовать в билдере ресурсы(Пример)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|