![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Есть программа на ассемблере.
Я хочу использовать функции в этой проге, но которые я напишу на дельфе. Использование .dll медленно и жрет много места. Хотелось-бы скомпилить .obj и включить его в .exe который будет скомпилен из асмовской проге и который будет использовать функции из .obj |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
нифига оно не медленно и не жрёт много места, если, конечно, у тебя DLL не 2 гига использование Dll -это давно признанная технология
мне кажется, что получиться почти тоже, что и использование DLL |
||||
|
|||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 14.7.2011, 22:37 |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
По размеру больше. Длл в дельфе - начиная с 400 кб. Объектный файл - значительно меньше.
Да и таскать длл мне с собой ненадо - должно быть все в одном ехе |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: нет Всего: 17 |
Вообще-то могу, что-то попутать и ввести в заблуждение, тк и ассемблер подзабыл и на Delphi давно(и немного) не работал, но общий принцип наверное такой
1. в asm'ком тексте все нужные имена функций объяви как public (там еще вариант global помоему есть) 2. для каждой asm функции напиши функцию на делфи которая: - через ассемблерные вставки передает параметры 'сверху' в виде предусмотренном в исходных функциях; - вызывает саму процедуру - возвращаемые параметры из asm функций в вид дельфийских не забудь перед вызовом сохранить, а после восстановить значения РОН'ов. Чтобы не думать push их всех в стек и pop потом обратно Если я конечно не путаю и Delphi позволяет использовать ассемблерные вставки и подключать obj файлы -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
vadims
Мне нужно в ассемблерную прогу вставить объектный файл с функциями на дельфе. а не наоборот. |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: нет Всего: 17 |
WolfON Сорри, не вник - еще подумаю
-------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: нет Всего: 17 |
Вот такая мысль
1. Если тебе просто удобней писать код на Delphi и нет необходимости использовать компонентную ее сторону, то напиши ее просто на Паскале и останется только вопрос изучения интерфейса ассемблер-паскаль, там все вполне реально Общий принцип вызовов паскалевских функций есть в моих постах в http://forum.vingrad.ru/index.php?showtopi...30entry449342 Но это только общий принцип – писал по памяти 2. Если тебе все же нужны именно возможности Delphi, что бы без проблем подтащить VCL и тд , ты делай все что нужно на Дельфи, а основная функция программы будет просто вызывать основную ассемблерную функцию. Интерфейс тот же. -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: нет Всего: 8 |
Подумаю....
Просто некоторые компоненты в дельфе снимают лбвиную доли работы по сравнению с перепиской на асме... |
|||
|
||||
| vadims |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 305 Регистрация: 8.6.2005 Репутация: нет Всего: 17 |
А они для этого и сделаны Ты что хотел все-таки использовать возможности VCL не подтаскивая и не инициализируя ее. Ведь это не просто отдельные функции - а целая система Если так - то у тебя имхо выбора нет - только то что я тебе прдложил во втором варианте -------------------- Cpu not found ! Press any key for software emulation. |
|||
|
||||
| jack128_ |
|
||||
|
Unregistered |
Ты глючишь. Если ты используешь VCL - то это твои личные проблемы, в противном случае dll'ка и пяток кб может быть..
ЗЫ у не знаю, какую дельфи ты используешь и какой асм, но если >3 версии, то обж файл ты все равно не сможешь включить в свою асм прогу, так как есть в дельфийских obj особенности формата... ЗЗЫ Странный подход - основную прогу писать на асме, а вспомогательные функции на дельфи.. Обычно наоборот делают.. |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |