Ответ 1
Да, вы можете это сделать, попробуйте: help libcall
Вам нужно будет экспортировать функции как неконсолированные C-функции с подозрительным соглашением "cdecl", которое я подозреваю:
Из справки vim:
Для Win32 функции, которые вы пишете, должны быть помещены в DLL и использовать нормальный C-вызов (NOT Pascal, который используется в Windows Системные DLL файлы). Функция должна принимать ровно один параметр, либо символьный указатель или длинное целое число и должен возвращать символ указатель или NULL. Возвращаемый символ должен указывать на память, который останется действительным после возвращения функции (например, в статическом данные в DLL). Если он указывает на выделенную память, эта память будет просачиваться. Использование статического буфера в функции должно работать, это затем освобождается, когда DLL выгружается.
Вот пример того, как это сделать здесь.