1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Использование winapi в fasm(32-64)

Тема в разделе "WASM.BEGINNERS", создана пользователем Demon13, 7 июн 2019.

  1. Demon13

    Demon13 New Member

    Публикаций:
    0
    Регистрация:
    16 ноя 2018
    Сообщения:
    14
    Здравствуйте, я столкнулся с необходимостью использовать функции из 64 битной dll в 32 битном приложении. Я узнал, что могу использовать use32 и use64 в fasm. Но при их использовании получал ошибки в вызовах winapi. Как правильно вызвать winapi в 64 битном режиме в fasm в 32 битном приложении используя use64 и use32?
     
  2. f13nd

    f13nd Active Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    727
    Это директивы для ручной установки разрядности, если тебе надо в 32битное приложение красиво подключить 64битный код и наоборот (например для кода, инжектируемого в другой процесс). К использованию винапи из 64бит длл в 32бит приложении это ни малейшего отношения не имеет. Точно так же как директива org не закрепляет код за определенным адресом, а только дает генерировать код так, будто он находится там.
     
  3. Demon13

    Demon13 New Member

    Публикаций:
    0
    Регистрация:
    16 ноя 2018
    Сообщения:
    14
    Спасибо, простите мне мою некомпетентность, но так как же правильно вызвать winapi из 64 битной dll в 32 битное приложение?
     
  4. f13nd

    f13nd Active Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    727
  5. Demon13

    Demon13 New Member

    Публикаций:
    0
    Регистрация:
    16 ноя 2018
    Сообщения:
    14
    Спасибо
     
  6. Коцит

    Коцит Active Member

    Публикаций:
    0
    Регистрация:
    31 янв 2017
    Сообщения:
    132
    Demon13, если в планах использовать 64-битные библиотеки для 32-бит программ, то не получится - у них параметры функциям передаются по разному (см.скрин). Попробуй положить рядом со-своей программой соответствующую либу из 32-битной оси, и загрузить её динамически - может прокатит. После сборки, можешь занопить динамику, и винда должна подцепить твою прожку как WOW64. Хотя сам не пробовал.. а только в теории.

    hiew_32.png
     
  7. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    2.601
    Что то последнее время вопросы дебильные. Как можно спрашивать про асм, НЕ ПОНИМАЯ фундаментальных процессорных режимов!? :sarcastic:

    Compatibility mode".

    IA BASIC ARCH, 3: BASIC EXECUTION ENVIRONMENT

    Курить до посинения.