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

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

  1. Asterix

    Asterix New Member

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

    masquer wasm.ru

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

    new на API это GlobalAlloc, но там лучше код глянуть, как оно работает
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Наверное, всё-таки HeapAlloc, хотя конечно больше от реализации зависит.

    Всё-таки я не пойму, зачем проге на асме нужны malloc? Даже на С это не обязательно, см. для начала MSDN "Reduce EXE and DLL Size with LIBCTINY.LIB" by Matt Pietrek

    [​IMG] _1909217732__LIBCTINY.ZIP
     
  4. Broken Sword

    Broken Sword Robert

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


    неа :) пришлось бы добавлять еще один параметр в стек (uFlags). А у меня каждое изменение может отразиться болезненно на конечном результате





    дело в том, что у меня стоит задача: из сгенеренного IDA-ой asm-файла (изначальная прога была на VС) убрать "лишнее", добавить "недостающее" и скомпилить в библиотеку. Если я начну переписывать все куски с нуля то уйдет не один год жизни. Поэтому приходится идти на такие странные, на первый взгляд, изменения
     
  5. Worm32

    Worm32 New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2005
    Сообщения:
    33
    Адрес:
    Azerbaijan
    Если я правильно автора темы понял если заюзать в своей программе хотябы этот код

    (дизассемблированная функция GetCurrentProcessId)


    Код (Text):
    1.  
    2. MOV EAX,[DWORD FS:18]
    3. MOV EAX,[DWORD EAX+20]
    4.  




    то апи Функция GetCurrentProcessId уже не нужна?.

    Пример простейший, но таким образом можно написать прогу которая вообще не будет вызывать АПИ функции.

    (ПРАВДА ПРОГА ПОТОЛСТЕЕТ ПОРЯДОЧНО)

    Интерестно, это значит можно ниписать полноценную Win32 программу, которая не будет вызывать Апи функции?
     
  6. Asterix

    Asterix New Member

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

    Нужна, т.к. код функции GetCurrentProcessId различен в разных OS, например в win98 и в 2k/XP
     
  7. OxMDN

    OxMDN New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2003
    Сообщения:
    11
    Адрес:
    Moscow
    Привет всем !
    Нашел только эту ветку по интересующему меня вопросу.
    Имею простой код, в котором хочу использовать из некой либы asmlib.lib процедуру
    ?MyFunc@@YAHAAH@Z

    Код (Text):
    1. ; #########################################################################
    2.  
    3.  .386
    4.  .model flat,stdcall
    5.  option casemap: none
    6.  
    7. ; #########################################################################
    8.  
    9.  include kernel32.inc
    10. includelib kernel32.lib
    11.  
    12. ?MyFunc@@YAHAAH@Z  PROTO  C  :DWORD
    13. includelib asmlib.lib
    14.  
    15. ; #########################################################################
    16.  
    17.  .code
    18. start: 
    19.     push 555
    20.     call  ?MyFunc@@YAHAAH@Z
    21.         invoke ExitProcess,0   
    22. end start
    На что линкер мне выдает такое сообщение:
    Вопрос: почему ( я така понимаю ml.exe ) таким образом производит name decoration. А именно - добавляет в качестве префикса символ "_" ? И как все-таки добится, чтобы этого (Name decoration) не происходило ?

    Заранее всем большое спасибо
     
  8. Quantum

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

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Код (Text):
    1. ?MyFunc@@YAHAAH@Z  PROTO  SYSCALL  :DWORD
     
  9. OxMDN

    OxMDN New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2003
    Сообщения:
    11
    Адрес:
    Moscow
    Спасибо ! Заработало !
     
  10. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
  11. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    У кого-нить есть то же для msvbvm60.dll?