Подскажите пожалуйста, какого формата должны быть obj файлы, чтобы можно было их подгружать в HiAsm`е?
Т.е COFF или OMF формата?
Я слышал, что Delphi версии выше 3 создают несовместимый с Intel OMF формат, хотя и внешне похожий.
Так ли это?
Если да, то где можно посмотреть описание?
Что то похожее на это:
http://svn.shamangrad.net/codetools/trunk/link/info/pe_coff.xml.htm
Для РЕ файлов.
Этот топик читают: Гость
Ответов: 2059
Рейтинг: 132
|
|||
карма: 6 |
|
Ответов: 3889
Рейтинг: 362
|
|||
flint2, в папке HiAsmElementsDelphicode и поддиректориях можете найти и изучить примеры таких файлов. AFAIK, формат специфический, на базе OMF.
|
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
1nd1g0
Спасибо большое. AFAIK, формат специфический, на базе OMF. Информация ценная. А файлы HiAsmElementsDelphicode*.obj я с них и начал. Только разобраться в них весьма сложно. Нашел хорошее описание OMF http://onembedding.bialix.com/info/omf-51/omf51.exe но файлы, которые удалось найти в Hiasm ничего общего с этим форматом не имеют. Может быть как раз начало заголовка другое, а без начала весь клубок не распутаешь. Описания AFAIK формата, то что я нашел в сети, в основном используются для передачи картинок и музыки. Другого не удалось найти. Мне кажется, что должны существовать какие то Borland`овские описания. Неужели они из этого делают тайну? |
|||
карма: 6 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 8 раз(а), последний 2021-06-21 04:07:17 |
|||
карма: 0 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Это я понял.
AFAIK - as far as I know Но меня с толку сбило часто встречающаяся фраза в различных статьях "Apple Lossless закрытый AFAIK формат." ------------ Дoбавленo в 22.52: Тем не менее, где взять описание формата или хотя бы заголовка??? |
|||
карма: 6 |
|
Ответов: 211
Рейтинг: 52
|
|||
flint2 писал(а): Я слышал, что Delphi версии выше 3 создают несовместимый с Intel OMF формат, хотя и внешне похожий.Так ли это? Да, Borland-OMF, действительно несовместим Intel OMF. Описание формата в прищепке(англ.) |
|||
карма: 1 |
| ||
файлы: 1 | borlandomf.zip [26.9KB] [269] |
Ответов: 3889
Рейтинг: 362
|
|||
flint2, если не ошибаюсь, у dcc32 два разных формата объектных файлов (по ключам -J и -JP соответственно), второй "для C++" (дословно цитирую, что они имели в виду под этим можно догадываться, что для C-Builder, но утверждать не возьмусь). Может второй какой-нибудь линковщик поймёт.
|
|||
карма: 1 |
|
Ответов: 211
Рейтинг: 52
|
|||
ключ DCC32 -J создает .OBJ модуль для DCC32
ключ DCC32 -JP создает .OBJ модуль для BCC32 (формат Intel OMF для версии DCC32 10.0 и Borland OMF для Delphi 4 и выше). 1nd1g0 писал(а): Может второй какой-нибудь линковщик поймёт.[burl=ftp://ftp.styx.cabel.net/pub/UniLink]UniLink[/burl] |
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
Minkovsky
Спасибо за описание. Пока мельком посмотрел, в выходные буду пробовать. Похоже, - то, что доктор прописал. Теперь такой вопрос к гуру HiAsma - Такой формат OBJ HiAsm скушает? P.S. Чтобы было понятно, для чего это: Есть самопальный продукт. Формат выходных файлов которого можно сделать любым, если известен формат. Во всяком случае создать PE (в том числе dll сишного и паскалевского формата)и COFF не составило труда. Спасибо всем за ответы! Думаю, что тема интересна не только мне. |
|||
карма: 6 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Все недостающие функции и процедуры из этих obj придётся дописывать самому (т.е делать полные аналоги либо брать аналоги уже из
------------ Дoбавленo в 06.36: существующих библиотек) flint2 писал(а): Есть самопальный продукт.
------------ Дoбавленo в 06.36: Формат выходных файлов которого можно сделать любым, если известен формат. |
|||
карма: 4 |
|
Ответов: 2059
Рейтинг: 132
|
|||
andrestudio
Все недостающие функции и процедуры из этих obj придётся дописывать самому Да, это понятно. Спасибо. а что за продукт если не секрет? http://narod.ru/disk/29165181001/forth.zip.html Применяю для написания быстрых кусков программы, чтобы на Asme не писать. Можно писать достаточно сложные программы. Генерирует прямой шитый код, уступает по скорости только сшитому коду. Но сшитый код тяжело переносить и объем кода получается больше. Было бы интересно узнать подробнее, чем отличаются dll HiAsma от стандартных, чтобы можно было сгенерировать такие же на сторонних продуктах. |
|||
карма: 6 |
|
Ответов: 3889
Рейтинг: 362
|
|||
flint2 писал(а): Было бы интересно узнать подробнее, чем отличаются dll HiAsma от стандартных, чтобы можно было сгенерировать такие же на сторонних продуктах.AFAIK, ничем, это обычные библиотеки, просто свой интерфейс через несколько экспортируемых функций, можете рискнуть попросить у Автора прототип. |
|||
карма: 1 |
|
Ответов: 2059
Рейтинг: 132
|
|||
1nd1g0
Спасибо. Вот именно интерфейс и интересует. [b]Товарищи господа разработчики. Пожалуйста, если возможно, дайте необходимую информацию по этому вопросу![/b] Понятно, что можно и стандартные подключать, но "родные" было бы элегантней. Т.е. можно было бы сделать элемент, инструмент или плагин, в стиле инлайн кода для сторонних продуктов, который создавал бы UseHidll не прибегая к языковым пакетам. |
|||
карма: 6 |
|
Ответов: 5227
Рейтинг: 587
|
|||
flint2 писал(а): http://narod.ru/disk/29165181001/forth.zip.html
Применяю для написания быстрых кусков программы, чтобы на Asme не писать. Можно писать достаточно сложные программы. Генерирует прямой шитый код, уступает по скорости только сшитому коду. Но сшитый код тяжело переносить и объем кода получается больше. flint2 писал(а): Пожалуйста, если возможно, дайте необходимую информацию по этому вопросу------------ Дoбавленo в 10.33: [flood]с новой работы многострочие летит только в путь [/flood] |
|||
карма: 4 |
|
Ответов: 2059
Рейтинг: 132
|
|||
andrestudio
Мельком глянул, сплошное API похоже, могу порекомендовать purebasic для этих целей, делает маленькие Делал сравнения, пузырьковую сортировку большого массива. 11 минут 37 секунд против 1 минута 57 секунд, разница ощутима. Но колесо конечно не надо изобретать. Нашел готовую систему и очень быструю http://spf.sourceforge.net/ Вполне подходит для скриптового языка. То же самое делает за 48 секунд. Сложность в интеграции состоит в том, что сам себя компилирует и надо тащить в объектный код и само ядро вместе со всяким мусором. Пока разобрался, как сделать из него dll (пока COFF)(тоже оказалось не просто ). Попробую сделать элемент "вставка скрипта", правда придётся за собой таскать и DLL. смотри исходники компонентов usedll, calldll В выходные занимался, вроде бы понял, только теоретически, до практики руки не дошли. С calldll вопросов вроде бы не возникает, а вот usedll надо пробовать. Буду задавать вопросы. ------------ Дoбавленo в 15.12: andrestudio сплошное API похоже Не правильно. API это чемодан, который тяжело таскать, а выбросить жалко. Главное там адресный процессор: Callr: pop eax ; Новый указатель команды xchg eax, esi ; Получим адрес возврата stosd ; и сохраним его в стеке возвратов. Next _Next: lodsd ; Считаем в регистр EAX адрес следующего слова, ; которое надо выполнить. Jmp eax ; И передадим управление этому слову _Exit: sub edi, 4 ; Передвинем указатель стека возвратов. mov esi, [edi] ; восстановим адрес следующей команды. Next ; продолжим выполнение программы. Все примитивы на ассемблере, обмен данными через стек. |
|||
карма: 6 |
|
15