Можно ли вручную создать вызов функции типа __fastcall
Я пытаюсь выполнить вызов функции (MSVC, windows x64) на основе указателя функции (поиск из внутренней таблицы имен функций), затем передать аргумент - снова на основе описаний функций в таблице поиска функций (преобразовать из описания типа в соответствующие данные тип). Функциональная точка и аргументы создаются во время выполнения на основе действий пользователя, а таблица функций содержит несколько тысяч прототипов функций. Программа скомпилирована с помощью Visual Studio, но большинство функциональных вызовов должны инициироваться действием пользователя.
По сути, я пытаюсь написать фрагмент кода, который точно выполняет то, что компилятор делает во время компиляции - создает вызов __fastcall из прототипа функции - единственная разница в том, что он находится во время выполнения.
Я прочитал соглашения о программном обеспечении x64 / соглашения о вызовах x64 в документе MS, похоже, это может быть достигнуто с помощью встроенного кода сборки. Но я не касался сборки x64, хотел бы посмотреть, есть ли какие-то существующие функции C/ или Windows, которые могут помочь здесь со всеми подробностями трюка.