Импорт функции из .OBJ файла.
От: dosik Россия www.dosik.ru
Дата: 17.08.15 09:59
Оценка:
Добрый день.

Достался по наследству .OBJ файл с описанием хранящихся там функций (Win32).
Каким образом я могу использовать хранящиеся в нем функции, включив их в свой исполняемый файл (.exe)?
В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?
Re: Импорт функции из .OBJ файла.
От: Mr.Delphist  
Дата: 17.08.15 10:34
Оценка:
Здравствуйте, dosik, Вы писали:

D>Добрый день.


D>Достался по наследству .OBJ файл с описанием хранящихся там функций (Win32).

D>Каким образом я могу использовать хранящиеся в нем функции, включив их в свой исполняемый файл (.exe)?
D>В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?

А кто "родил" этот OBJ? Ибо они тоже бывают разные внутри (COFF, OMF) и в случае чего придётся искать конвертер (иначе линкер может сказать "не буду, не хочу").
Ну и вот тут гляньте: http://stackoverflow.com/questions/2552034/generate-header-of-view-obj-file
Re[2]: Импорт функции из .OBJ файла.
От: dosik Россия www.dosik.ru
Дата: 17.08.15 11:39
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>А кто "родил" этот OBJ? Ибо они тоже бывают разные внутри (COFF, OMF) и в случае чего придётся искать конвертер (иначе линкер может сказать "не буду, не хочу").

MD>Ну и вот тут гляньте: http://stackoverflow.com/questions/2552034/generate-header-of-view-obj-file

Да кто же его знает, кто его родил. Знал, попросил бы пере собрать. Ок, спасибо, пошел читать.
Re[2]: Импорт функции из .OBJ файла.
От: dosik Россия www.dosik.ru
Дата: 17.08.15 11:49
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>А кто "родил" этот OBJ? Ибо они тоже бывают разные внутри (COFF, OMF) и в случае чего придётся искать конвертер (иначе линкер может сказать "не буду, не хочу").


По рылся в кишках, нашел:

C:\BC45\INCLUDE\WINDOWS.H

и кучу других включений из той же директории

Есть еще

Turbo Assembler Version 5.0

Рожали по ходу дела ее очень давно и на Borland С 4,5 видимо.
Re[3]: Импорт функции из .OBJ файла.
От: Mr.Delphist  
Дата: 17.08.15 12:12
Оценка:
Здравствуйте, dosik, Вы писали:

D>По рылся в кишках, нашел:

D>

C:\BC45\INCLUDE\WINDOWS.H

D>и кучу других включений из той же директории

D>Есть еще

Turbo Assembler Version 5.0

D>Рожали по ходу дела ее очень давно и на Borland С 4,5 видимо.

Борланд обычно юзал OMF, а парни из MS предпочли COFF. Можно попробовать что-то типа такого, но гарантия не 100%:
http://www.agner.org/optimize/#objconv

Основной источник боли — если там явной/неявной зависимостью тянется какой-то борландовский рантайм. Тогда может быть проще взять тулсет от Борланда (BC45/Delphi/Builder), слепить обёртку типа DLL или ещё чего-то, а уж к ней лазить из своего кода. Либо искать сырцы и пытаться собрать на Visual Студии.
Re[4]: Импорт функции из .OBJ файла.
От: dosik Россия www.dosik.ru
Дата: 17.08.15 12:29
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Борланд обычно юзал OMF, а парни из MS предпочли COFF. Можно попробовать что-то типа такого, но гарантия не 100%:

MD>http://www.agner.org/optimize/#objconv

Спасибо, буду пробовать!

MD>Основной источник боли — если там явной/неявной зависимостью тянется какой-то борландовский рантайм. Тогда может быть проще взять тулсет от Борланда (BC45/Delphi/Builder), слепить обёртку типа DLL или ещё чего-то, а уж к ней лазить из своего кода.


Рассматривал такой вариант в качестве бреда — но на безрыбье как говориться... Коль других вариантов не останется.

MD>Либо искать сырцы и пытаться собрать на Visual Студии.


Сейчас закину удочку "поставщику" этого OBJ.

Спасибо.
Re: Импорт функции из .OBJ файла.
От: flаt  
Дата: 17.08.15 14:36
Оценка: +1
Здравствуйте, dosik, Вы писали:

D>В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?

Просто добавить obj в проект, он передаётся линкеру. Разумеется, если он совместим.
Re[2]: Импорт функции из .OBJ файла.
От: pva  
Дата: 18.08.15 12:18
Оценка: +2
Здравствуйте, flаt, Вы писали:

F>Просто добавить obj в проект, он передаётся линкеру. Разумеется, если он совместим.

Если он не совместим, можно из него собрать DLL и грузить динамически.
newbie
Re[5]: Импорт функции из .OBJ файла.
От: Хон Гиль Дон Россия  
Дата: 28.08.15 08:00
Оценка:
Здравствуйте, dosik, Вы писали:


MD>>Борланд обычно юзал OMF, а парни из MS предпочли COFF. Можно попробовать что-то типа такого, но гарантия не 100%:

MD>>http://www.agner.org/optimize/#objconv

D>Спасибо, буду пробовать!


Насколько я помню этот антиквариат, конверсию OMF->COFF выполнял MS'овский editbin при запуске без дополнительных параметров. Только вот запамятовал, в какой версии VC я этим последний раз пользовался — как бы не в 6.0 С последними версиями студии не факт что сработает.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.