Есть DLL (нет исходного кода, но, надеюсь, внутри не ожидается ничего особенного). Собираюсь написать приложение для Linux, чтобы использовать его. Итак, GNU полностью: родной Linux gcc / gdb / ELF и т. Д.
Я нашел здесь на SO некоторые решения: с WineLib можно написать код, который имеет доступ к win32 LoadLibrary
функция, и этот код по-прежнему компилируется в двоичный файл ELF. Немного переадресации API, и вот файл * .so, который вызывает LoadLibrary
на dll и выставляет свои функции.
Это правильно?
Можно ли это автоматизировать? Есть ли пример с winedump
а также winegcc
что, вероятно, инструменты для этой работы?
Звучит все совершенно разумно. Формат DLL должным образом древний, и не слишком сложный (он должен был работать на исходном процессоре 8086, и он получил проще с 32-битной Windows). Код — это просто инструкции x86, а данные могут быть еще скучнее.
Тем не менее, это звучит также очень специализированно, что, вероятно, объясняет, почему я никогда не слышал о реальной реализации этой идеи.
Других решений пока нет …