Перейти к содержанию
Fire Monkey от А до Я
  • 0

сборка проекта с библиотеками


vasilius

Вопрос

Здравсвтуйте

 

Приложение на FMX под win32, win64 требует наличие таких библиотек

fmx250.bpl
FMXTee9250.bpl
IndyCore250.bpl
IndySystem250.bpl
rtl250.bpl

borlndmm.dll

 

Можно скомпилировать проэкт так, чтобы все библиотеки были прилинкованы в ЕХЕ? Чтобы не таскать за собой bpl

 

Спасибо

 

 

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
10 часов назад, dnekrasov сказал:

В свойствах проекта укажите "Link with runtime packages = False"

Перед тем, как создать топик, я погуглил

Совет аналогичный Вашему встречается часто... Я убираю эту галочку но проэкт стартует с ексепшеном

5be75d[1].jpg

 

так же пробовал разные комбинации этого с этим

ea2c93.jpg

Размер ехе растет, но не запускается - всегда аксес виолейшен

 

3 часа назад, kami сказал:

Вы используете передачу небезопасных параметров между exe и dll?

Зря.

Я лично не использую, но я использую компонент, который является оберткой для hidapi.dll - это длл для работы с HID USB мультиплатформенная... Вот за внутренности этой обертки я ручаться не могу...

Изменено пользователем vasilius
Ссылка на комментарий
  • 0
14 минут назад, Tumaso сказал:

Ммм, может вы запустите свое приложение в режиме отладки и найдете место, инициирующее исключение?

Ммм... может подскажите как....

Исключение только, если Link with runtime packages = False

 

 

 

79b60e[1].jpg

Ссылка на комментарий
  • 0
5 минут назад, kami сказал:

Нажать Break и посмотреть по стеку вызовов - где начинается ваш код.

Спасибо,что стараетесь помочь, но видимо Вам не совсем понятна суть проблемы...

В любом случае, буду благодарен за полезные советы

 

d38b62[1].jpg

Ссылка на комментарий
  • 0
1 час назад, vasilius сказал:

Исключение только, если Link with runtime packages = False

А Вы попробуйте  "Link with runtime packages = True", а Runtime packages сделайте пустым.

Хотя, конечно, лучше разобраться из-за чего Exception возникает.

Ссылка на комментарий
  • 0

Вы имеете ввиду этот список?

На счет access violation я бы с удовольствием разобрался, но как видно с скринов - там до моего кода дело не доходит....

и не хочу разводить болото, но худшего дебагера чем в этой среде я не встречал... хуже только полное отсутствие... ну или я не умею его готовить ...

 

53c79d[1].jpg

Ссылка на комментарий
  • 0
11 часов назад, vasilius сказал:

Ехе маленький , и требует пакеты...

Значит глобальная настройка , выставленная в "All configurations - All platforms" перекрыта в наследниках, например в "Debug-Win32"
Но не в этом дело.

Попробуйте методом последовательного исключения, вернее - включения.
Сперва избавьтесь от автолинковки "своих" dll, к примеру - видна загрузка какой-то NSI.dll. Если проблема пропала - постепенно включаем их. Не пропала - можно начать с чистого листа и постепенно дополнять новый проект своим кодом. На худой конец - просто пересоздать dpr и dproj, или что там аналогичное в билдере.

Ну и не забываем про Build проекту. Есть смутное подозрение, что собрали-то без рантайм-пакетов, но что-то не подхватилось и до сих пор приложение их хочет. А может - не приложение, а dll???

Свалиться при инициализации ImageList, даже не доходя до своего кода - ну, это я не знаю :))) Может, винду переустановить? (шутка).

Ссылка на комментарий
  • 0
6 часов назад, kami сказал:

Свалиться при инициализации ImageList, даже не доходя до своего кода - ну, это я не знаю :))) Может, винду переустановить? (шутка).

Я создал чистый проект подобавлял все компоненты, которые используются в текущем, 

Втом числе и ДЛЛ , убрал линковку пакеджей и RTL - проект запускается . Технология работает. Тоест дело не в ДЛЛ. 

Но в моем проекта проблема осталась...

Посмотрире на скриншот выше, там дело до ImageList не доходит... и ИмеджЛист может быть Dialogs или что-то другое - тут как компилятор делает... по разному бывает

Вот скрин с дебагера под Вин32 - он более понятный, чем с дебагера под вин64 -)))

 

Ошибка в модуле System

class function TMonitor.GetFieldAddress(const AObject: TObject): PPMonitor;
begin
  Result := GetMonitorFieldAddress(AObject);
end;

 

До моего кода дело не доходит...

Цитата

First chance exception at $0044303C. Exception class $C0000005 with message 'access violation at 0x0044303c: read of address 0x00000000'.

 

58cc02[1].jpg

Ссылка на комментарий
  • 0

Принимаю поздравления...

Начал переносить код с нерабочего проекта в рабочий (который запускался)...

у меня в Create было заполнение поля стиля...

тип значения TValue 

у меня было

 =  TValue::From<String>("0"); 

 этот код нормально работал без линковки - все было хорошо

с линковкой вылазил Access violation описаный выше

решение такое :

=  TValue::_op_Implicit(String("0"));

К сожалению, дебагер, как я и говорил, абсолютно бесполезный в этой среде, жаль.....

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...