Хотя этот вопрос довольно старый, тема, по-видимому, не потеряла своей актуальности. Если вы можете использовать или используете Python ... вот мое решение.
Я написал небольшой модуль Python для вызова библиотек Windows из Python для Linux. Он основан на IPC между обычным процессом Python для Linux / Unix и процессом Python на основе Wine. Поскольку я нуждался в нем во многих различных сценариях использования / сценариях сам, я разработал его как «универсальный» ctypes
модуль вставную замену, которая автоматически выполняет большинство необходимых работ в фоновом режиме .
Пример: предположим, что вы работаете в Python под Linux, у вас установлен Wine и вы хотите вызвать msvcrt.dll
(библиотека времени выполнения Microsoft C). Вы можете сделать следующее:
import zugbruecke as ctypes
dll_pow = ctypes.cdll.msvcrt.pow
dll_pow.argtypes = (ctypes.c_double, ctypes.c_double)
dll_pow.restype = ctypes.c_double
print('You should expect "1024.0" to show up here: "%.1f".' % dll_pow(2.0, 10.0))
Исходный код (LGPL) , Пакет PyPI & документация .
Это все еще немного шероховато по краям (то есть альфа и небезопасно), но он обрабатывает большинство типов параметров (включая указатели).