LINUX.ORG.RU

Есть ли возможность использования wine .so библиотек?

 , ,


0

1

Собственно, чем-то похоже на данный топик

Как можно использовать MS Windows библиотеки на линуксе ? Как можно использовать MS Windows библиотеки на линуксе ?

Вот приперло, даже и не знаю возможно ли такое реализовать.

Есть приложение windows(quick), оно работает на Linux через wine.
Нужно из этого приложения получать данные при помощи windows pipe.
Пример готового проекта под windows (JAVA-->JNA-->windows pipe(windowsapi_kernel32))
https://github.com/boscogh/quik_pipe

Есть, большое, желание, заставить данную связку работать на Linux. Соответственно, нужно windowsAPI(windows_pipe) под Linux.

Возникает вопрос, как это можно реализовать? В wine присутствуют, скомпилированные под linux lib, типа: /usr/lib64/wine/kernel32.dll.so Но если, я правильно понимаю, то использовать их отдельно от/без wine не получится? тоесть для работы windowsAPI под linux, нужно запустить всю «экосистему wine»?

Кто сталкивался, подскажите ..... приветствуются source code

Посмотри компоненты winetricks.

With ★☆☆
()

Похоже, тут нужен Winelib - для компиляции исходников, использующих winapi в родные приложения под линукс.

curufinwe ★★★★★
()
Ответ на: комментарий от curufinwe

Winelib

Кто реально пользовал winelib? Расскажите, что почем? <br> На сколько я понял, winelib, может помочь, скомпилировать приложение которое будет использовать unix lib, и windows Dll, при этом он компилится winemaker(С,С++) и запускается, при помощи wine в среде wine. Если, я захочу вызывать windowsAPI функции, то мне для начала, нужно будет раз разделить свое приложение на 2 part, один part которого будет написан на C/C++ и запускаться под wine, а уже далее например, при помощи unix sockets или .... устанавливать соединение со второй частью приложения?

<br> java - со своим jna/jni тут пролетает??? ......

Bsplesk
() автор топика
Ответ на: Winelib от Bsplesk

а уже далее например, при помощи unix sockets или ...

Я тоже хотел с помощью pipe или unix sockets, но так насколько мне известно невозможно: в юниксе ведь нет win named pipes, а там нет unix domain sockets. Эффективной коммуникации так просто не выйдет. А вот если написать свой dll-wrapper для линуксовой библиотечки, которая будет служить связным звеном, тогда - да. Вот: Building Winelib DLLs. Т.е. написать линуксовую либу, которая будет общаться по юникс сокетам. Она будет вызываться dll wrapper'ом. А виндовая прога для коммуникации должна будет использовать вот этот dll wrapper. После сборки этого вроппера, его нужно слинковать при сборки виндовой проги/библиотеки.

gag ★★★★★
()
Ответ на: комментарий от gag

Winelib

а там нет unix domain sockets

А разве winegcc это не «кроссплатформенный» компилятор, который, как раз умеет подготовить функции winAPI, а также прекрасно работает с UNIX библиотеками, и все это запускается при помощи wine?

Bsplesk
() автор топика
Ответ на: Winelib от Bsplesk

Там: в нативной виндовой библиотеке/проге. Если она настолько хорошо (портабельно) написана, что соберётся winegcc, тогда, конечно, нет проблем. Я описал более общий случай, когда можно собрать, но не напрямую winegcc, а, хотя бы mingw.

Т.е. написать линуксовую либу, которая будет общаться по юникс сокетам. Она будет вызываться dll wrapper'ом.

Либа не нужна, можно напрямую в вропере.

gag ★★★★★
()

Имхо, тебе проще переписать этот адаптер на обычные сокеты. Напиши dll для передачи данных и команд и дёргай её из Quik Lua (он это позволяет).

Norgat ★★★★★
()
Ответ на: комментарий от gag

Winelib

Надо мне осмыслить вами предложенный метод ...... пока не осмыслил/не осилил(у Вас исходников нет случаем?)

В моем случае, «нативную, виндовую прогу» - никак не изменить, она полностью закрытая, но с ней можно «общаться» при помощи win named pipes. Поэтому, как вариант, предложил(как себе представляю), написать на C/C++ под winegcc, приложение(костыль передатчик), которое используя win named pipes(получать данные) и unix domain sockets(перекидывать дальше).

Соответственно этот «передатчик» будет запускаться при помощи wine и работать в среде wine. и уже далее общаться с приложением запущенным без всяких wine, которому, как раз нужны данные.

Bsplesk
() автор топика
Ответ на: Winelib от Bsplesk

Если она полностью закрытая, тогда вот такой сценарий стоит попробовать.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.