crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> MinGW: интеграция имеющейся DLL'ки в exe'шник
Litkevich Yuriy
  опции профиля:
сообщение 31.5.2010, 12:26
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Есть потребность, впихать каким-либо способом, тело dll'ки в exe'шник, который от неё зависит.
Но разумеется сделать это так, чтобы exe'шник её нормально понимал во время выполнения. В идеале это должно обеспечиваться самим компилятором. Примерно как при статической линковке.

Вопрос как это сделать?

П.С. интернет по этому поводу в рот воды набрал, или я совсем криво запросы составлял
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 31.5.2010, 13:16
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Исходников библиотеки нет?
P.S. Пришла в голову безумная идея - впихнуть библиотеку в ресурсы и подгружать нужные функции из этой библиотеки вручную.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
alex977
  опции профиля:
сообщение 31.5.2010, 13:22
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 310
Регистрация: 19.6.2008
Из: Россия, МО, г.Мытищи
Пользователь №: 206

Спасибо сказали: 77 раз(а)




Репутация:   8  


Юрий, может переформулируешь вопрос?
1) что у тебя уже есть (src или exe+dll)?
2) чего ты хочешь добиться? Монолитный исполняемый файл? Или просто засунуть exe и dll в один бОльший исполняемый файл (типа как в Python сделать из проекта один исполняемый файл с интерпретатором, ddl библиотек и файлами пользователя внутри).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.5.2010, 15:44
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Приеду такой пример:
mingwm10.dll
и
my.exe, который зависит от этой dll'ки
Нужно получить один my.exe, который уже не будет зависить от этой dll'ки

Я могу как угодно пересобирать my.exe (любые ключи и т.д. и т.п), но трогать dll'ку не могу и будем считать, что кроме *.a и заголовочников у меня нет исходников этой dll'ки

П.С. таже задача, например для fbclient.dll (Клиентская библиотека Firebird)

Цитата(Kagami @ 31.5.2010, 17:16) *
P.S. Пришла в голову безумная идея - впихнуть библиотеку в ресурсы и подгружать нужные функции из этой библиотеки вручную.
была подобная идея, но приложение даже не запустится (в случае с моим первым примером)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 31.5.2010, 16:29
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 601
Регистрация: 2.2.2009
Пользователь №: 523

Спасибо сказали: 101 раз(а)




Репутация:   9  


Цитата(Litkevich Yuriy @ 31.5.2010, 16:44) *
Цитата(Kagami @ 31.5.2010, 17:16) *
P.S. Пришла в голову безумная идея - впихнуть библиотеку в ресурсы и подгружать нужные функции из этой библиотеки вручную.
была подобная идея, но приложение даже не запустится (в случае с моим первым примером)

Тут ключевое слово вручную. Т.е. через LoadLibrary и далее по списку :) Естественно, приложение придется переписывать для такого режима работы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.5.2010, 17:51
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Kagami @ 31.5.2010, 20:29) *
Естественно, приложение придется переписывать для такого режима работы.
будем считать эту идею, заначкой на чёрный день :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dreamcode
  опции профиля:
сообщение 31.5.2010, 22:48
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 2.11.2009
Пользователь №: 1201

Спасибо сказали: 1 раз(а)




Репутация:   0  


Можно так : дописываеш свою библиотеку в конец файла... А при запуску проги извлекаеш библиотеку из файла в каталог с приложением и запускаеш прогу.... )))

или пишеш другую прогу которая будет так делать

Сообщение отредактировал dreamcode - 31.5.2010, 22:47
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 1.6.2010, 6:55
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1595
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


люди на форумах пишут, что статически слинковать mingw нельзя (хотя я что-то подозреваю, что можно, но геморно будет). только подгрузкой из ресурса.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.6.2010, 8:56
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Iron Bug @ 1.6.2010, 10:55) *
что статически слинковать mingw нельзя
ну если мы от него отвлечёмся. Чисто теоретически, возможна ли линковка dll'ок внутрь exe'шника?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 1.6.2010, 15:34
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Глянь тут: http://www.intmain.ru/ilmerge-gui.html

и поищи в гугле по запросам типа:
Цитата
Merge exe and dll


вот еще тут есть обсуждение: http://www.gotdotnet.ru/forums/2/115833/

говорят что можно с помощью текстового редактора объединить :)

Сообщение отредактировал kuzulis - 1.6.2010, 15:54
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.5.2020, 15:14