MASM: Вызовы функций из других библиотек

Тема в разделе "WASM.WIN32", создана пользователем Broken Sword, 18 дек 2004.

  1. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Broken Sword

    Помоему с msvcrt никаких проблем нет..

    У меня прекрасно компилится такой пример:
    Код (Text):
    1. .486
    2. .model flat, stdcall
    3. option casemap:none
    4. include \masm32\include\windows.inc
    5.  
    6. includelib \masm32\lib\msvcrt.LIB
    7.  
    8. fopen  PROTO C :DWORD, :DWORD
    9.  
    10.  
    11. .CODE
    12.  
    13. start:
    14.  
    15. invoke fopen, eax, ecx
    16.  
    17. ret
    18.  
    19. end start
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
  3. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    2Asterix: слушай, то что нужно. Оказывается дело вот в чем: хваленый protoize (не будем показывать пальцем кто мне его подсунул :) в файл прототипов добавляет только имена вида _имя, тогда как uemaker (тот inc, который ты мне дал сгенерен им) генерит как "_имя", так и "имя". Именно поэтому все работает. Спасибо тебе большое! Небольшое резюме: protoize не совсем корректно справляется со своей задачей.
     
  4. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Broken Sword >




    В FASM велико присутствие Дао, поэтому ему не требуются всевозможные излишества в виде линкеров.



    ЗЫ: долго думаю, Asterix уже всё написал..
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Broken Sword

    Да, а как там со статической линковкой, получилось?

    И, кстати, что такое uemaker, где его взять?, т.к. тот инклуд я просто нашёл в сети.
     
  6. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    S_T_A_S_

    > поэтому ему не требуются всевозможные излишества в виде линкеров.



    А вот minifmod.lib fasm ну никак использовать не может, и без помощи Дао здесь ему никак не обойтись, то бишь линкера от MS :derisive:))
     
  7. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433


    то же все ОК. компиль сам определяет динамическая либа или статическая. msvcrt - динамическая. libc(mt) - статические.





    :) в заголовке того inc-а что ты прислал значилось, что msvcrt created by uemaker; теперь я тоже подозреваю, что uemaker - это ник чела.
     
  8. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Ну, это не FASM'у нужен линкер, а minifmod'у, поскольку не нашлось пока человека, который воимя дзена откомпилировал бы minifmod с ключиком /Faminifmod.asm а потом немного доработал листинг, что бы можно было компилировать FASM :)
     
  9. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    S_T_A_S_

    Кстати, большая часть minifmod - ассемблерные вставки с активным использованием FPU (никакой оптимизации!!!). Теоретически, под FASM переделать не должно составить особого труда, НО я как-то пытался перевести всё это под TASM и у меня ничего не получилось :-( А в фасме я не силён.
     
  10. masquer

    masquer wasm.ru

    Публикаций:
    0
    Регистрация:
    13 сен 2002
    Сообщения:
    890
    Адрес:
    Николаев


    другие еще хуже имхо :)





    это вроде плагин для ultraedit, тот же автор написал неплохое ИДЕ, но, похоже, забил на него (не знаю, может, после моих комментариев на win32asm community :) )
     
  11. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Quantum



    Намёк понял :) К сожалению я с mod'ами на приктике на сталкивался, а перед переделкой хорошо бы их как следует пощупать.. (тогда можно даже и свой проигрыватель написать from scratch) Пока же у меня есть один неиспользованный player дореволюционных музык, вот прикручу его куда-нить, потом... хотя за это время, похоже bogrus уже сделает :)



    ЗЫ: Гы, в соседнем топе FASM und minifmod и то написано меньше :)
     
  12. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    S_T_A_S_

    > поскольку не нашлось пока человека, который воимя дзена откомпилировал бы minifmod с ключиком /Faminifmod.asm а потом немного доработал листинг, что бы можно было компилировать FASM :)



    Ниччё не получится, вернее получится но не то что надо %) , т.к. код либы прямо зависит от используемых в конкретном xm файле звуковых эффектов.
     
  13. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    в продолжение темы. каким образом можно заменить вот это:

    push esi

    call ??2@YAPAXI@Z ; operator new(uint)



    как думаете - корректно ли будет заменить на getmem или работать все равно небудет?
     
  14. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    нет, это я глупость сказал... GetMem паскалевская функция да? на alloc надо менять что ли?
     
  15. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    S_T_A_S_




    Не сделает :), я в сях нибумбум, а парсить листинг надо ещё в скриптах понимать чего-то, никогда не занимался, короче надо время и хорошо посидеть. Я было начал собирать инфу по xm-формату, думал быстрее будет самому написать, потом понял, что ошибся



    Asterix




    Кажется нет, там просто можно выкинуть из либы код для не используемых эффектов, а можно юзать и всю либу
     
  16. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    bogrus

    > там просто можно выкинуть из либы код для не используемых эффектов, а можно юзать и всю либу



    Через fexp.exe это и делается..

    Чем меньше эффектов тем меньше будет либа.



    ЗЫ: твой xm через winamp звучит совсем по другому, так что либа ещё ооочень далека от совершенства :derisive:
     
  17. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    S_T_A_S_

    Asterix

    Я думаю, вам стоит перенести обсуждение minifmod в соседней теме? Или даже создать новую тему и обсудить проблему в ней?
     
  18. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Ну вот, стоит человеку дать права модератора и он уже начинает наезжать на старожилов форума :derisive:))

    власть портит людей..
     
  19. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
  20. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433




    оказывается, msvcrt не экспортирует alloca. calloc и malloc - пожалуйста. заменил эту хрень на malloc - все работает слав богу.



    2Asterix: я сам не сторонник гестаповских методов, но истина в словах IceStudent-а все-же есть...