LINUX.ORG.RU

winelib


0

0

Задачка обыденная - есть некая Windows DLL, нужно написать над ней враппер для подгрузки в обычную Линукс-программу. Собственно, .so с помощью WineLib сделать получилось и даже прилинковать к своей программе, только в результате она крешится при попытке вызова любой WinAPI-функции.

Следуя документации программу я тоже собрал с помощью winegcc, а не обычным gcc, она запускается, WinAPI дёргает, всё работает. Естественное желание - собирать свою программу без WineLib, а обычным способом, просто прилинковав вышеупомянутый .so. Это вообще возможно? Если не с помощью WineLib - то как тогда?

★★★★★

а кто же локальную таблицу дескрипторов процесса изменит и добавит туда гейт для виндовых вызовов?

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

> Конечно, берешь ее портируешь на линукс и все.

Были бы исходники.

Собственно вопрос в силе. Я так понимаю нужно в своей программе сделать то же, что делает и сам бинарник wine. Был бы хоть один пример программы, которая загружает Windows DLL в рантайме.

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

> а кто же локальную таблицу дескрипторов процесса изменит и добавит туда гейт для виндовых вызовов?

Вот мне и нужно описание API из wine/library.h с маломальским примером.

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

>Был бы хоть один пример программы, которая загружает Windows DLL в рантайме.

Есть такой. Называется mplayer. Он использует фрагменты кода wine для загрузки некоторых виндовых кодеков. Работает, естественно, только для 32 бит.

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