Russian Qt Forum
Ноябрь 26, 2024, 04:09
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Windows
>
DLL 32/64
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: DLL 32/64 (Прочитано 13808 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
DLL 32/64
«
:
Февраль 07, 2011, 17:53 »
Добрый день
Есть 2 файла dll с тем же именем, напр theLib.dll, один файл для 32-бит, другой для 64. Хотелось бы сделать так
TheLib (folder)
32 (folder)
theLib.dll (file 32)
64 (folder)
theLib.dll (file 64)
И поместить фолдер TheLib туда же где exe. Но как откомпилить Windows приложение так чтобы оно искало такую-то dll там? Понятно у себя на машине я могу прописать пути (правда не знаю где
), но на стороне удаленного заказчика хочется "ограничиться копированием".
Спасибо
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: DLL 32/64
«
Ответ #1 :
Февраль 07, 2011, 17:56 »
Запускать через батничек.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
crackedmind
Гость
Re: DLL 32/64
«
Ответ #2 :
Февраль 07, 2011, 18:11 »
Статическое или динамическое связывание?
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DLL 32/64
«
Ответ #3 :
Февраль 07, 2011, 18:43 »
Цитата: Пантер от Февраль 07, 2011, 17:56
Запускать через батничек.
Оба exe файла (32 и 64) должны быть в одном фолдере, поэтому не вижу как батничек поможет.
Цитата: crackedmind от Февраль 07, 2011, 18:11
Статическое или динамическое связывание?
Вероятно под динамическим Вы имели ввиду GetProcAddress и.т.п. Тогда нет, статическое. Библиотека не моя, исходники под Вындоуз не все, имею lib и dll для 32 и 64 соответственно.
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: DLL 32/64
«
Ответ #4 :
Февраль 07, 2011, 19:09 »
А зачем заказчику 2 версии библиотеки? Приложение собрано все равно с одной из них
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DLL 32/64
«
Ответ #5 :
Февраль 07, 2011, 19:13 »
Цитата: pastor от Февраль 07, 2011, 19:09
А зачем заказчику 2 версии библиотеки? Приложение собрано все равно с одной из них
Заказчику нужны 2 версии приложения (т.е 2 exe файла). А они зовут dll с тем же именем
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: DLL 32/64
«
Ответ #6 :
Февраль 07, 2011, 19:16 »
Приложения тоже находятся в одной папке?
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DLL 32/64
«
Ответ #7 :
Февраль 07, 2011, 19:18 »
Цитата: pastor от Февраль 07, 2011, 19:16
Приложения тоже находятся в одной папке?
Да, должны по многим причинам
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: DLL 32/64
«
Ответ #8 :
Февраль 07, 2011, 19:22 »
Как уже сказал Пантер, через батник. Добавить в переменную PATH путь к нужной библиотеке и запустить приложение.
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DLL 32/64
«
Ответ #9 :
Февраль 07, 2011, 20:38 »
Цитата: pastor от Февраль 07, 2011, 19:22
Как уже сказал Пантер, через батник. Добавить в переменную PATH путь к нужной библиотеке и запустить приложение.
Да уж очень коряво. Приложение (как правило) вызывается из другого - там тоже править на батник? 32-бит модуль вызывает 64 модуль (часто). И с платформами (на Mac этой проблемы нет) вразброс - придется городить уродливый код только для Вындоуз.
Говорят dll могут быть "redirected" из манифеста. Если мелкософт это страхомудие придумал - может удастся из него что-то получить? Гуглю.....
Записан
Blackwanderer
Гость
Re: DLL 32/64
«
Ответ #10 :
Февраль 07, 2011, 20:47 »
Извините, а что, это настолько принципиально, чтобы файлы назывались одинаково?
Ведь можно theLib32.dll и theLib64.dll и проблемы нету.
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: DLL 32/64
«
Ответ #11 :
Февраль 07, 2011, 20:51 »
Igors, какое задание, такое и решение. Ты хочешь чего-то странного, поэтому и решение через ****....
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: DLL 32/64
«
Ответ #12 :
Февраль 07, 2011, 21:03 »
Цитата: Черный Странник от Февраль 07, 2011, 20:47
Извините, а что, это настолько принципиально, чтобы файлы назывались одинаково?
Ведь можно theLib32.dll и theLib64.dll и проблемы нету.
Да с удовольствием бы так и сделал, но каким образом? Ведь к проекту подключается lib файл в котором вшито имя theLib.dll - эта dll будет зваться exe файлом.
Цитата: Пантер от Февраль 07, 2011, 20:51
Igors, какое задание, такое и решение. Ты хочешь чего-то странного, поэтому и решение через ****....
Пантер, не горячитесь. Я проблему не выдумал потому что мне больше делать нечего. Есть Вындоуз платформа, и я ее поддерживать обязан, хочу я того или нет. На родном OSX проблем нет, не моя вина что в Вындоуз все через ****
Записан
BRE
Гость
Re: DLL 32/64
«
Ответ #13 :
Февраль 07, 2011, 21:14 »
Цитата: Igors от Февраль 07, 2011, 19:18
Цитата: pastor от Февраль 07, 2011, 19:16
Приложения тоже находятся в одной папке?
Да, должны по многим причинам
Не знаю этих причин... Но почему не сделать так?
AppDir
App.bat Пускалка запускает нужный exe-шник.
Share (folder) Общие данные
32bit (folder) 32-битный код
TheLib.dll
App.exe
64bit (folder) 64-битный код
TheLib.dll
App.exe
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: DLL 32/64
«
Ответ #14 :
Февраль 07, 2011, 21:17 »
BRE, опередил.
Дополню только тем, что App.bat в данном случае не нужен. Просто делается 2 ярлыка.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...