Как объявить прототип зная имя функции

Тема в разделе "WASM.BEGINNERS", создана пользователем assch, 2 фев 2024.

  1. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    201
    макрос invoke должен знать прототип функции
    например при попытке прописать лишний параметр он вызовет ошибку

    если например нужно функцию инициализировать посредством - GetProcAddress

    Код (ASM):
    1.  
    2. .data
    3. tTxt1 db "DDRAW.DLL",0
    4. tTxt2 db "DirectDrawCreate",0
    5. .data?
    6. NameFun dd ?
    7. .code
    8.  
    9. invoke LoadLibrary,ADDR tTxt1
    10. invoke GetProcAddress,eax,ADDR tTxt2
    11. mov NameFun,eax
    12.  
    то как можно объявить прототип этого адреса функции

    я конечно понимаю что её можно вызывать через - call

    Код (ASM):
    1.  
    2. push 0
    3. push 0
    4. push 0
    5. call NameFun
    6.  
    но хочется через - invoke
    чтобы отслеживалось количество параметров

    объявить обычным способом

    Код (ASM):
    1.  
    2. NameFun PROTO :DWORD,:DWORD,:DWORD
    3.  
    не получится
    выскакивает ошибка о переопределении идентификатора

    кто в теме подскажите пожалуйста

    или на masm32 это сделать нельзя
     
  2. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    563
    invoke GetProcAddress,eax,ADDR tTxt2
    Тут только два параметра, а прототип требует три.
     
  3. assch

    assch Member

    Публикаций:
    0
    Регистрация:
    17 мар 2011
    Сообщения:
    201
    GetProcAddress PROTO :DWORD,:DWORD
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.721
    MaKsIm нравится это.