• 0
vasilius

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

Вопросы

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

 

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

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

borlndmm.dll

 

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

 

Спасибо

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 ответов на этот вопрос

  • 0
7 часов назад, vasilius сказал:

borlndmm.dll

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

Зря.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
10 часов назад, dnekrasov сказал:

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

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

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

5be75d[1].jpg

 

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

ea2c93.jpg

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

 

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

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

Зря.

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

Изменено пользователем vasilius

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
14 минут назад, Tumaso сказал:

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

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

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

 

 

 

79b60e[1].jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 минуту назад, vasilius сказал:

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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

Это, к сожалению, не помогает. Ехе маленький , и требует пакеты...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 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"));

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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