Достался по наследству .OBJ файл с описанием хранящихся там функций (Win32).
Каким образом я могу использовать хранящиеся в нем функции, включив их в свой исполняемый файл (.exe)?
В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?
Здравствуйте, dosik, Вы писали:
D>Добрый день.
D>Достался по наследству .OBJ файл с описанием хранящихся там функций (Win32). D>Каким образом я могу использовать хранящиеся в нем функции, включив их в свой исполняемый файл (.exe)? D>В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?
Здравствуйте, Mr.Delphist, Вы писали:
MD>А кто "родил" этот OBJ? Ибо они тоже бывают разные внутри (COFF, OMF) и в случае чего придётся искать конвертер (иначе линкер может сказать "не буду, не хочу"). MD>Ну и вот тут гляньте: http://stackoverflow.com/questions/2552034/generate-header-of-view-obj-file
Да кто же его знает, кто его родил. Знал, попросил бы пере собрать. Ок, спасибо, пошел читать.
Здравствуйте, Mr.Delphist, Вы писали:
MD>А кто "родил" этот OBJ? Ибо они тоже бывают разные внутри (COFF, OMF) и в случае чего придётся искать конвертер (иначе линкер может сказать "не буду, не хочу").
По рылся в кишках, нашел:
C:\BC45\INCLUDE\WINDOWS.H
и кучу других включений из той же директории
Есть еще
Turbo Assembler Version 5.0
Рожали по ходу дела ее очень давно и на Borland С 4,5 видимо.
Здравствуйте, 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 Студии.
Здравствуйте, Mr.Delphist, Вы писали:
MD>Борланд обычно юзал OMF, а парни из MS предпочли COFF. Можно попробовать что-то типа такого, но гарантия не 100%: MD>http://www.agner.org/optimize/#objconv
Спасибо, буду пробовать!
MD>Основной источник боли — если там явной/неявной зависимостью тянется какой-то борландовский рантайм. Тогда может быть проще взять тулсет от Борланда (BC45/Delphi/Builder), слепить обёртку типа DLL или ещё чего-то, а уж к ней лазить из своего кода.
Рассматривал такой вариант в качестве бреда — но на безрыбье как говориться... Коль других вариантов не останется.
MD>Либо искать сырцы и пытаться собрать на Visual Студии.
Здравствуйте, dosik, Вы писали:
D>В дельфе подобное решалось директивой {$L SOMEFILE.OBJ}, а что в MSVC (Visual Studio 2013)?
Просто добавить obj в проект, он передаётся линкеру. Разумеется, если он совместим.
Здравствуйте, flаt, Вы писали:
F>Просто добавить obj в проект, он передаётся линкеру. Разумеется, если он совместим.
Если он не совместим, можно из него собрать DLL и грузить динамически.
MD>>Борланд обычно юзал OMF, а парни из MS предпочли COFF. Можно попробовать что-то типа такого, но гарантия не 100%: MD>>http://www.agner.org/optimize/#objconv
D>Спасибо, буду пробовать!
Насколько я помню этот антиквариат, конверсию OMF->COFF выполнял MS'овский editbin при запуске без дополнительных параметров. Только вот запамятовал, в какой версии VC я этим последний раз пользовался — как бы не в 6.0 С последними версиями студии не факт что сработает.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.