можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 05.02.20 21:05
Оценка:
статическую библиотеку
или из файлов .o собранных cygwin файлы lib коректно линкуемые к проекту на VS
Re: можно ли из dll сделать
От: Erop Россия  
Дата: 06.02.20 07:56
Оценка: 8 (1)
Здравствуйте, sergey2b, Вы писали:

S>статическую библиотеку

S>или из файлов .o собранных cygwin файлы lib коректно линкуемые к проекту на VS

Оттуда будут потроха видны наружу, с ODR могут быть проблемы.
Особенно если несколько кломпиляторов и рантаймов в деле...

А зачем тебе это всё? Можно как-то по-простому хаккернуть? Ну, там, выгружать dll из ресурсов куда-нибудь во временный, автоудаляемый файл и грузить оттуда?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: можно ли из dll сделать
От: IID Россия  
Дата: 06.02.20 08:41
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ну, там, выгружать dll из ресурсов куда-нибудь во временный, автоудаляемый файл и грузить оттуда?


Автоудаляемые файлы (DELETE_ON_CLOSE) не маппятся.
kalsarikännit
Re[3]: можно ли из dll сделать
От: Erop Россия  
Дата: 06.02.20 08:50
Оценка:
Здравствуйте, IID, Вы писали:

IID>Автоудаляемые файлы (DELETE_ON_CLOSE) не маппятся.

Ну пусть в своп копирует, флажок жен был вроде?
Но, на самом деле конкретно DELETE_ON_CLOSE неудобно. Лучше в список на удаление после перезагрузки добавть, например.
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: можно ли из dll сделать
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 06.02.20 11:05
Оценка: 8 (1)
Здравствуйте, sergey2b, Вы писали:

S>статическую библиотеку


Нельзя. DLL — это, как и EXE, конечный исполняемый файл, в нем нет имен, модулей, функций и прочих принадлежностей OBJ/LIB.
Re[2]: можно ли из dll сделать
От: flаt  
Дата: 06.02.20 12:52
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:



ЕМ>Нельзя. DLL — это, как и EXE, конечный исполняемый файл, в нем нет имен, модулей, функций и прочих принадлежностей OBJ/LIB.


Можно.Но cygwin'овскую — нельзя.
Re[2]: можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 06.02.20 13:11
Оценка: 6 (1)
Здравствуйте, Erop, Вы писали:

E>А зачем тебе это всё? Можно как-то по-простому хаккернуть? Ну, там, выгружать dll из ресурсов куда-нибудь во временный, автоудаляемый файл и грузить оттуда?



я умею собирать под win вот эту библиотеку в виде dll
https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/

но попросили сделать статическую линковку с проектом на vs2015
Re[3]: можно ли из dll сделать
От: reversecode google
Дата: 06.02.20 13:24
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>но попросили сделать статическую линковку с проектом на vs2015


и что это настолько сложно?
после таких ваших вопросов
ваш експириенс понизился до уровня джуна после несколько месячных курсов по программированию
Re[3]: можно ли из dll сделать
От: SaZ  
Дата: 06.02.20 13:39
Оценка: 8 (1)
Здравствуйте, sergey2b, Вы писали:

S>но попросили сделать статическую линковку с проектом на vs2015


Вас LGPL лицензия не смущает для статической линковки?
Re[2]: можно ли из dll сделать
От: удусекшл  
Дата: 06.02.20 13:43
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

S>>статическую библиотеку


ЕМ>Нельзя. DLL — это, как и EXE, конечный исполняемый файл, в нем нет имен, модулей, функций и прочих принадлежностей OBJ/LIB.


Ну как же нет, когда всё, что нужно, там есть?

Теоретически можно разобрать ручками dll, покурить формат obj файлов MSVS и собрать всё в OBJ. Но таких инструментов готовых я не видел
Re[3]: можно ли из dll сделать
От: Videoman Россия https://hts.tv/
Дата: 06.02.20 14:04
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>я умею собирать под win вот эту библиотеку в виде dll

S>https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/

S>но попросили сделать статическую линковку с проектом на vs2015


Не хочу вас расстраивать, но во первых, ffMPEG под LGPL, а во вторых, avcodec.dll статически слинкована с avutil.dll и swresample.dll, т.е. она в рантайме без этих dll работать не будет. Поэтому, вам и их придется научится собирать.
Re[4]: можно ли из dll сделать
От: B0FEE664  
Дата: 06.02.20 14:41
Оценка:
Здравствуйте, SaZ, Вы писали:

S>>но попросили сделать статическую линковку с проектом на vs2015

SaZ>Вас LGPL лицензия не смущает для статической линковки?

Может они готовы предоставлять свои исходники, тогда какие проблемы?
И каждый день — без права на ошибку...
Re[4]: можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 06.02.20 16:20
Оценка:
Здравствуйте, Videoman, Вы писали:


V>Не хочу вас расстраивать, но во первых, ffMPEG под LGPL, а во вторых, avcodec.dll статически слинкована с avutil.dll и swresample.dll, т.е. она в рантайме без этих dll работать не будет. Поэтому, вам и их придется научится собирать.



с лицензие пусть разбираеться начальство, я их предупрежу

avcodec.a avutil.a swresample.a и оставшиеся 3-4 библиотеки
mingw могут быть слинкованы статически вместе
Re[4]: можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 06.02.20 16:22
Оценка: :)))
Здравствуйте, reversecode, Вы писали:



R>и что это настолько сложно?

R>после таких ваших вопросов
R>ваш експириенс понизился до уровня джуна после несколько месячных курсов по программированию

я 8 лет говнокодил и частично утерял навыки
но теперь все будет иначе
Re[2]: можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 06.02.20 16:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, sergey2b, Вы писали:


S>>статическую библиотеку


ЕМ>Нельзя. DLL — это, как и EXE, конечный исполняемый файл, в нем нет имен, модулей, функций и прочих принадлежностей OBJ/LIB.


именна функций и думюю их смещение нам известны (в конце концов я собираю эти dll и у меня есть def файлы)
dll на чистом Си те проблем с именнами не будет
rtl не смещиваеться тк он свой у dll и программы
Re[5]: можно ли из dll сделать
От: Videoman Россия https://hts.tv/
Дата: 06.02.20 18:57
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>avcodec.a avutil.a swresample.a и оставшиеся 3-4 библиотеки

S>mingw могут быть слинкованы статически вместе

Это не оно?
Re[6]: можно ли из dll сделать
От: sergey2b ЮАР  
Дата: 06.02.20 19:17
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Здравствуйте, sergey2b, Вы писали:


S>>avcodec.a avutil.a swresample.a и оставшиеся 3-4 библиотеки

S>>mingw могут быть слинкованы статически вместе

V>Это не оно?





Нет это делает lib для простого доступа к функциям all
Re[2]: можно ли из dll сделать
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.02.20 19:34
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Нельзя. DLL — это, как и EXE, конечный исполняемый файл, в нем нет имен, модулей, функций и прочих принадлежностей OBJ/LIB.


Имена экспортируемых и импортируемых символов в нем есть. Релокации ему вроде как не нужны. Так что теоретически можно. А практически вряд ли имеет смысл.
Re[3]: можно ли из dll сделать
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.02.20 08:33
Оценка:
Здравствуйте, flаt, Вы писали:

F>Можно.


Подобные тулзы могут сделать из DLL только "статически линкуемую" DLL, не более того. То есть, линковаться-то она будет, но только одним куском (максимум — секциями, но это уже ненадежно). Полноценной библиотеки из нее не сделать, если нет PDB.
Re[3]: можно ли из dll сделать
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.02.20 08:35
Оценка:
Здравствуйте, удусекшл, Вы писали:

У>Ну как же нет, когда всё, что нужно, там есть?


Где там границы функций и модулей?

У>Теоретически можно разобрать ручками dll, покурить формат obj файлов MSVS и собрать всё в OBJ.


И получится линкуемый бинарник, но никак не библиотека.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.