LINUX.ORG.RU

[Возможно?] Велосипед через wine


0

1

Есть одна офтопикова библиотека, предоставляющая API для запроса котировок и т.д. Подключается через C\C++

Есть ли какая-то возможность как-то по хитрому запустить эту библиотеку в wine, чтобы ее можно было импортировать в код из линукса?

★★★★★

Я пробовал и пришёл к выводу, что нельзя. libwine позволяет создавать только исполняемые файлы. Пришлось делать второй libwine-процесс и RMI.

Dendy ★★★★★
()

> Есть ли какая-то возможность как-то по хитрому запустить эту библиотеку в wine

wine rundll32.exe user32.dll,MessageBoxA Blablabla

шутю

anTaRes ★★★★
()
Ответ на: комментарий от ky-san

>Или у тебя .dll?

dll, с ней что-нить можно придумать?

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

>Пришлось делать второй libwine-процесс и RMI

А это как? А то что-то я вообще в этой вайноофтопной беде не разбираюсь.

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

> А это как?

Пишется RMI-протокол или берётся готовый. Собирается отдельное winelib-приложение, которое подгружает DLL и дёргает функции по событиям из основного процесса. Если DLL просит подставить указатели на каллбеки или прочие буферы, то всё может оказаться на порядок сложнее.

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

Ага, понял принцип.
Щас буду гуглить какой-нить пример реализации. Прошу поделиться какой-нить ссылкой на эту тему, если вдруг завалялась.

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

Гуглите по слову «RMI». Могу выложить собственный код, обвязывающий проприетарную библиотеку ReWire.

Dendy ★★★★★
()

[толсто]"не срача ради..." (с)

mono тут, конечно, кому-то все время не нужно, но можно попробовать замутить аналогичную хитрую связку через WCF и P/Invoke. (Скомпиленый в MSVS сервис, наск. я знаю, вполне себе запускается из mono, если не слишком навороченный, проблемы маршаллинга аналогичны RMI - в зависимости от API твоей либы...)

slackwarrior ★★★★★
()

а можно проще - сделать виндовую прогу - которая юзает эту длл и предоставляет текстовый типа интерфейс до него через stdin stdout

а в линуксе - запускаеш эту прогу под вайн - и обшаеться с прогой напрямую

ae1234 ★★
()

или как пример - mplayer умеет юзать напрямую dll с кодеками от виндов посмотри как там сделано

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

Есть предложение

Если есть желание/время, не мог бы ты мне помочь написать такую конструкцию, чтобы через вайн всю эту беду пускать. Сроки - примерно через месяцок, или позже или раньше. Цена вопроса - предагай =)

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

> Чудесным образом уведомление об ответе на сообщении пришло мне только сегодня.

Если бы тебе пришло уведомление на пост, написанный сегодня, еще вчера - это было бы гораздо чудеснее.

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

> Дык я его сегодня же и написал

Точно, глаза дырявые, на другую дату смотрел. Джаббер в профиле.

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