Смесь бульдога с носорогам или Delphi feat Fasm...

Тема в разделе "WASM.BEGINNERS", создана пользователем dgs, 1 фев 2009.

  1. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    Доброе время суток, столкнулся с задачей скрестить fasm и delphi, есть некоторая библиотека в которой приведены оч. важные функции, написана на fasm(мной), проблема в том, что использоваться эта библиотека будет в delphi 2009...

    1. Как передать из delphi параметры для вызова функций?
    2. Какое соглашение использовать, stdcall или в 2009 что-то по другому?
    3. Кто ни будь сталкивался с подобной проблемой? Есть подводные камни?

    Заранее спасибо...
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    С 2009 не сталкивался, в более ранних главная проблема -- нелюбовь к COFF-файлам, почему также MASM использовать проблематично (у меня не получалось, делал в TASM).
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Т.е. ты DLL на фасме хочешь использовать в EXE на делфи? А в чем проблема? Ну я так делал. Только длл была на масме. В Делфи объявляешь функцию, пишешь stdcall однозначно, ф топку другое. Ну а потом используешь как обычную функцию. Не пойму, в чем сложность. Вот как выглядело мое объявление:
    Код (Text):
    1. function Infect(pVict, pTroj: PChar):Boolean; stdcall; external 'natali.dll'
     
  4. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    В delphi 2009 точно работают stdcall, pascal и cdecl. Ну и её собственный вариант fastcall, естественно, но я бы его воздержался использовать, если такую функцию могут вызвать из программы на другом языке. Работоспособность всяких извращений а-ля __msfastcall не было повода проверить.
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    __msfastcall <> __fastcall
    т.к. в дельфийском fastcall юзаются eax, edx, ecx, а в msvc только eax, edx
     
  6. dgs

    dgs New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2008
    Сообщения:
    434
    ok. благодарю...