B>Восхитительно, оба способа работают! Теперь буду переписывать то же самое под mingw-gcc (да, вот такой я извращенец)
Провозился с ассемблером два дня впустую. После чего родилось простое решение -- воспользоваться дебаггером (например, OllyDbg) и скопировать ассемблерный код из proxy-dll на Delphi. Всё заработало
Итак, нашёлся окончательный ответ из двух вариантов:
использовать proxy-dll на Delphi;
написать proxy-функцию на ассемблере (на Visual C++ можно воспользоваться __naked функциями).
Плюсы и минусы:
Пишем на высокоуровневых языках ObjectPascal и C++, но в поставке идёт две dll на один плагин, и нужно иметь лицензионную Дельфи;
нужно немного позаморачиваться с ассемблером и DEF-файлами, но зато всё компактно.
Ещё раз всем огромное спасибо за помощь!