|
|
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Если реализация функций находится в исполняемом файле (exe), а у меня есть только заголовочный. Могу ли я подключить его к своему проекту? Например есть библиотеки, у которых с помощью утилиты depends можно увидеть зависимость от *.exe файлов.... Как это делается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:31 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_InsideЕсли реализация функций находится в исполняемом файле (exe), а у меня есть только заголовочный. Могу ли я подключить его к своему проекту? Например есть библиотеки, у которых с помощью утилиты depends можно увидеть зависимость от *.exe файлов.... Как это делается? точно также как и dll через LoadLibrary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:32 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
А если использовать явное подключение? Что писать в Makefile'e? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:36 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_InsideА если использовать явное подключение? Что писать в Makefile'e? вернее при неявном... т.е. не в run-time ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:38 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_InsideА если использовать явное подключение? Что писать в Makefile'e? но явному подключению нужен файл *.lib вроде, который создается только для dll, поэтому, скорее всего, никак явно exe не подключишь, для этого и есть dll ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 11:38 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Cerebrum Opilki_InsideА если использовать явное подключение? Что писать в Makefile'e? но явному подключению нужен файл *.lib вроде, который создается только для dll, поэтому, скорее всего, никак явно exe не подключишь, для этого и есть dllДа, статическую линковку без lib сделать нельзя. А вот то что lib только для dll это враки :) Зависит от линкера кончено, но вот например link из VC если получает на вход объектник с declspec(dllexport) и/или def-файл, по умолчанию делает lib даже для exe. Для других линкеров библиотеку можно запросить специальными ключами. Но если есть только один exe без lib - тогда можно сделать болвана exe с экспортом нужных функций. Стираешь болвана, а библиотеку используешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2006, 17:39 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
White Owl Cerebrum Opilki_InsideА если использовать явное подключение? Что писать в Makefile'e? но явному подключению нужен файл *.lib вроде, который создается только для dll, поэтому, скорее всего, никак явно exe не подключишь, для этого и есть dllДа, статическую линковку без lib сделать нельзя. А вот то что lib только для dll это враки :) Зависит от линкера кончено, но вот например link из VC если получает на вход объектник с declspec(dllexport) и/или def-файл, по умолчанию делает lib даже для exe. Для других линкеров библиотеку можно запросить специальными ключами. Но если есть только один exe без lib - тогда можно сделать болвана exe с экспортом нужных функций. Стираешь болвана, а библиотеку используешь. А что значит сделать болвана? И как? т.е. написать небольшой exe самому с пустыми функциями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2006, 13:14 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Именно. Хотя например у Borland есть implib, которая и из готового dll/exe создаст lib с экспортируемыми функциями. Только с VC полученная lib может быть несовместима. ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:08 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
LelikkТолько с VC полученная lib может быть несовместима есть конвертор Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2006, 11:20 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас LelikkТолько с VC полученная lib может быть несовместима есть конвертор Posted via ActualForum NNTP Server 1.3 а чем ковертировать? правда я пока implib у себя не нашел... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2006, 13:48 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_Insideа чем ковертировать? Еще на всякий случай поясняю, о чем речь: допустим есть какая-то .dll-ка, она экспортирует функции. Если она "создана" на Visual C++ и с ней идет файл .lib (библиотека импорта), то для использования этой .dll в проекте на C++ Builder имеющийся .lib (как он уже есть) - обычно не канал, но можно было создать новый .lib, в формате понимаемом Borland C++ (делается это с помощью утилиты implib) http://forum.ru-board.com/topic.cgi?forum=33&topic=4297&start=180 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2006, 14:00 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_Insideправда я пока implib у себя не нашел...Если у тебя VС то и не найдешь. Нету implib для COFF-библиотек, оно есть только для OMF-библиотек. Для COFF (то есть для VC) самое надежное делать болвана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2006, 17:02 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
LoadLybrary это конечно чорошо:) Но во всякой бочке мёда своя ложка ... 1. Мне так и не удалось через LoadLibrary загрузить экзешник целиком. Грузится только pe заголовок. Ну это так, просто руки кривые, наверное. 2. В "обычных" ехе нет релоков, а следовательно при загрузки по адресу отличному от ImageBase(а это при LoadLibrary произойдёт наверняка), код будет неработоспособным. 3. (Проверить так и не смог). При LoadLibrary вызывается DllEntry = EntryPoint, при загрузке ехе через LoadLibrary, он по идее должен просто запуститься и мирно умереть(если он конечно не базонезависим:), или если у него не окажется релоков). Можно конечно загрузить с флагом LOAD_LIBRARY_AS_DATAFILE, мы получим нормальный образ, но опять же без релоков сложно что-нибудь поделать. Т.о. если нет релоков ,то самое простое по-моему, рипнуть нужные ф-ии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 00:12 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
Opilki_InsideЕсли реализация функций находится в исполняемом файле (exe), а у меня есть только заголовочный. Могу ли я подключить его к своему проекту? Если эта функция из .exe экспортируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 11:33 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
a_s_dLoadLybrary это конечно чорошо:) Но во всякой бочке мёда своя ложка ... 1. Мне так и не удалось через LoadLibrary загрузить экзешник целиком. Грузится только pe заголовок. Ну это так, просто руки кривые, наверное. 2. В "обычных" ехе нет релоков, а следовательно при загрузки по адресу отличному от ImageBase(а это при LoadLibrary произойдёт наверняка), код будет неработоспособным. 3. (Проверить так и не смог). При LoadLibrary вызывается DllEntry = EntryPoint, при загрузке ехе через LoadLibrary, он по идее должен просто запуститься и мирно умереть(если он конечно не базонезависим:), или если у него не окажется релоков). Можно конечно загрузить с флагом LOAD_LIBRARY_AS_DATAFILE, мы получим нормальный образ, но опять же без релоков сложно что-нибудь поделать. Т.о. если нет релоков ,то самое простое по-моему, рипнуть нужные ф-ии. Если из exe экспортируются функции то там появляется .reloc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2006, 14:26 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
White Owl Да, статическую линковку без lib сделать нельзя. Одну враку опровергаешь, другую тут же создаешь. Есть .def файл, в нем можно указать линкеру как и откуда импортировать функцию. *.lib при этом уже не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 06:18 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
MasterZivЕсть .def файл, в нем можно указать линкеру как и откуда импортировать функцию. *.lib при этом уже не нужен.нуууу.... в принципе можно, но я так редко это использую что забыл уже нафиг :) И насколько я помню если использовать def/IMPORT нельзя указывать тип стека и список параметров для импортируемой функции. Линкер не будет это контроллировать. Прийдется доверять собственным заголовочным файлам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2006, 18:33 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
MasterZiv Есть .def файл, в нем можно указать линкеру как и откуда импортировать функцию. *.lib при этом уже не нужен. А как этот .def прицепить, чтобы его Билдер видел? Пишет unresolved external 'mysql_init' referenced from..... Help, please! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 12:29 |
|
||
|
Подключение исполняемого файла вместо библиотеки
|
|||
|---|---|---|---|
|
#18+
mdaemon MasterZiv Есть .def файл, в нем можно указать линкеру как и откуда импортировать функцию. *.lib при этом уже не нужен. А как этот .def прицепить, чтобы его Билдер видел? Пишет unresolved external 'mysql_init' referenced from..... Help, please! До 6-й версии можно было через макрос USEDEF В 6-й наXMLили: - Project\Add to Project и выбираем нужный def. При этом он добавляется в bpr: <PROJECT> <MACROS> .... <DEFFILE value="yourdeffile.def"/> ... USEDEF в 6-ке: #define USEDEF(FileName) \ extern PACKAGE DummyThatIsNeverReferenced ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 13:42 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33814500&tid=2030677]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 195ms |
| total: | 349ms |

| 0 / 0 |
