Использование Windows DLL из программы Linux - PullRequest
0 голосов
/ 14 марта 2019

Я работаю со специально созданной сторонней базой данных, для которой разработчики предоставляют различные API для запросов. Одним из них является высокопроизводительный собственный C API для Windows, который поставляется с файлом .h для кодирования и либо .lib для статического связывания, либо .dll для динамического связывания. В версиях x86 и x86_64.

В идеале я бы хотел использовать этот же нативный API в Linux.

Мне интересно, можно ли каким-то образом использовать эту библиотеку через winelib, сделав небольшую вставку в C на обычном Linux toolchain, которая загружает проприетарную библиотеку с помощью winelib и просто выходит за пределы набор функций, которые делегируют функциям библиотеки.

Таким образом, я могу загрузить указанный C shim в нативную программу Linux и использовать его или использовать с дополнительными нативными привязками в .NET Core или Java.

Возможно ли это? Если это так, то это лучший способ? Есть лучшие способы? Если это возможно, я мог бы связать это статически, чтобы произвести единственный .so? Или мне нужно загрузить его динамически и передать как родной .so shim, так и .dll для его работы в клиентском приложении?

...