Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Delphi и ASM   Найти похожие ветки 

 
Opus   (2003-10-24 07:25) [0]

Есть исходники на ASM-e, в которых ничего не понимаю.
Нужно их использовать в Delphi. Естественно просто asm не помогает. В исходниках определены свои переменные и прочее.
Подскажите, где можно найти ответы на данный вопрос для НОВИЧКОВ (может, принцип создания DLL из АСМ-овских файлов).
Предлагайте СВОИ варианты ответов.
Спасибо.


 
sniknik   (2003-10-24 08:27) [1]

переменные которые определены в сегменте данных (DS) естественно и без мороки переносятся в дельфевские переменные. с теми что в сегменте сода (CS) придется помучится и менять принцип и логику иначе из дельфей их не увидеть (надеюсь исходники на асме с подробными комментариями?).
есть конструкции (асли ASM еще для DOC) которые просто не переносятся, принципиально, (к примеру прерывания), возможно и с ASM под винды тоже самое (не сталкивался).
и т.д.
без понимания ничего не получится, и ты зря думаеш что на любое действие (как подобный перенос) гдето есть подробное описание, инструкция, следуя которой можно все сделать.
мой вариант ответа, если перенос ОЧЕНЬ нужен найми ПРОГРАММИСТА.
не за что.


 
Opus   (2003-10-24 10:34) [2]

А если просто откомпилить какую-нить DLL на асме, а потом заюзать в Дельфях? Много мороки будет? Я интересовался про подобную инфу: типа там компиляции ДЛЛ или че-нить подобного.


 
sniknik   (2003-10-24 10:50) [3]

если скомпилится, да еще как dll с экспортом нужных фукций, да еще и параметры описаны (не нужно из контекста смотреть), то проблем не должно быть вообще.
если же переделывать то инфа по ASM-у (и много чего еще) есть к примеру на сайте Подгорецкого Анатолия. и еще больше в инете.

p.s. возможно вся документация тебе покажется слишком общей раз ищеш инструкцию по переводу. (нигде нет такого "поменяйте здесь и еще вот тут и ваш exe станет dll-ю")


 
han_malign   (2003-10-24 11:00) [4]

Если в ASM-е - функции котрые нужно использовать

tasm <...>.asm

unit AMSImport;
interface
function ...(...);cdecl;/stdcall;/... - в зависимости от того, как разбираются параметры функций в ASM-е
implementation
{$L <...>.obj}
function ...(...);external;
end.

З.Ы. OBJ-ектники скомпилированные MASM, помоему, не подойдут - уже не помню(во всяком случае MSVС-шные не подходят точно)...


 
Opus   (2003-10-24 11:48) [5]

>sniknik © (24.10.03 10:50)
>p.s. возможно вся документация тебе покажется слишком общей раз ищеш инструкцию по переводу. (нигде нет такого "поменяйте здесь и еще вот тут и ваш exe станет dll-ю")

В том-то и дело - мне не надо "поменяйте здесь и еще вот тут". Ф асм-овском файле все функции уже выделены. Хочу просто узнать, как их на экспорт в ДЛЛ подать, т.е. какой заголовок вначале прописать и как правильно скомпилить.

>han_malign © (24.10.03 11:00)
>OBJ-ектники скомпилированные MASM, помоему, не подойдут - уже не помню(во всяком случае MSVС-шные не подходят точно)...
Да, OBJ у меня получилось создать, но он че-т работать не хочет.


 
sniknik   (2003-10-24 14:54) [6]

> Да, OBJ у меня получилось создать, но он че-т работать не хочет.
а ты можеш отличить код ASM под dos от под винды? ну или знаеш подо что у тебя написано?
инфу по asm-у не читал и(или) не нашол похоже. http://podgoretsky.com/ftp/Docs/Asm/AsmBradly/index.html


 
Opus   (2003-10-24 22:09) [7]


> sniknik © (24.10.03 14:54)
> а ты можеш отличить код ASM под dos от под винды? ну или знаеш подо что у тебя написано?


Отличить не могу, а написано под винду. Это точно, ибо прога компилится и запускается в винде.
Спасибо за ссылки. Буду разбираться.


 
sniknik   (2003-10-24 22:30) [8]

подключение внешней процедуры скомпиленной в OBJ

procedure hasp (Service, SeedCode, LptNum, Pass1, Pass2: longint; var p1,p2,p3,p4 : longint); external;
{$L hasp32b.obj}

(это из поставки хасп ключа Alladin, на чем написан обьектник неважно на с или на том же асме. если умудришся выделить, попробуй также)


 
Opus   (2003-10-25 08:51) [9]

To: sniknik ©.
Пишет: При компиляции в Delphi пишет " Bad object file format."


 
sniknik   (2003-10-25 11:15) [10]

Opus (25.10.03 08:51) [9]
ну значит не судьба. :( либо обьектник у тебя получается неправильный, (нет там процедуры, лишнее чтото, просто заголовок не сходится, .. т.д.), либо версия компилятора не та (тот же MASM, незнаю почему но видиш говорят не подходят).
ради интереса посмотрел внутрь моего рабочего (up) там в начале есть строка "Turbo Assembler Version 5.0™". те. если код у тебя привильный (ну там в модуле должно быть что процедура внешняя, ... еще чего нибудь наверное) компилируй им.


 
Opus   (2003-10-25 21:03) [11]

Изучил сегодня более подробно проблему.
Существуют два формата записи файлов: COFF и OMF.
Delphi понимает только OMF.
MASM 6.14 и 6.15 вроде бы пишет и тот, и другой, но Delphi его OMF читать отказывается.
Другое дело с TASM32 - читает на "УРА". Наверное Борланд специально туда заморочки какие-нить вставил, чтоб Майкрософт не интегрировался :)
Но вот проблема: мой код написан на MASM и TASM ни в какую его не хочет компилить - цепляется к файлам windows.inc и т.п.
Подскажите, может кто знает, в чем дело?


 
sniknik   (2003-10-25 21:54) [12]

ты че пацак дальтоник чтоли? ;о)
(© Кин-Дза-Дза)

букву M от буквы T отличить не можеш? это же два разных языка, также как С и С++, Дельфи и Паскаль, хоть и похожи но компилить код другого не обязаны (хотя иногда могут).
переписывай/подгоняй на нем, и вся проблема, открой непонравившийся файл это или файл хедеров/макросов или просто подстановочный файл (хотя бы причину сказал чего цепляется), возможно можно просто вставить содержимое на место ссылки на файл (предположение).

а еше подумай над "моим вариантом ответа" в первом посте.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.043 c
14-42081
Layner
2003-10-23 16:58
2003.11.13
Давайте на форуме добавим судью. и прокурора.


6-41855
Yot
2003-09-10 13:11
2003.11.13
Client_Server


3-41095
Zn
2003-10-22 16:36
2003.11.13
Ошибка переполнения в IBQuery.


6-41847
turich
2003-09-12 07:11
2003.11.13
Помогите с Mail-клиентом


4-42276
Ilg
2003-09-11 19:11
2003.11.13
Текст из Edit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский