Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование windows'овской dll в Unix 
V
    Опции темы
borisbn
Дата 26.6.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Доброго времени суток.
Есть проблема: хочу перевести приложение с windows на linux. Моё приложение написано на Qt, и не использует ничего системного, поэтому с ним проблем не должно быть, но в этом приложении используется dll-ка, исходников которой у меня нет ( мы её купили в одной конторе без исходников, т.к. с ними было в несколько раз дороже ). Я знаю ( вернее предполагаю ), что dll-ка ничего системного windows'овского не вызывает, только new и delete.
Вопрос: как сделать так, чтобы моё приложение работало на "нативном" linux'е, а dll-ка - не обязательно, например под WINE'ом.

P.S. Очень не хочется переделывать приложение, чтобы общаться по сети с некой обёрткой, работающей под WINE и вызывающей dll-ку.

P.P.S. Похожую тему находил ( http://forum.vingrad.ru/topic-108070.html ), но там у людей либо были исходники, либо они не были против того, чтобы вся программа работала под WINE.


Спасибо.



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 26.6.2010, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



borisbn, найди альтернативу. Что эта DLL делает?
PM   Вверх
Sartorius
Дата 26.6.2010, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: нет
Всего: 37



dll не .NET-овская случайно?
PM MAIL ICQ   Вверх
borisbn
Дата 26.6.2010, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



bsa, к сожалению не получится, т.к. она очень специфическая и мы её специально заказывали, писали ТЗ. А делает она определение вида и параметров модуляции по записанному сигналу (квадратуры 8 кГц 16 бит)  
Sartorius, нет. Обычная dll, написанная на Си++ и откомпилированная M$VS 6.0


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kosmonaFFFt
Дата 27.6.2010, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



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

И еще одна мысль - узнать/посмотреть, как в вайне грузятся виндовые библиотеки, и сделать так же/заюзать код из вайна...

Это сообщение отредактировал(а) kosmonaFFFt - 27.6.2010, 10:41


--------------------
user posted image
PM MAIL ICQ   Вверх
borisbn
Дата 27.6.2010, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



kosmonaFFFt, спасибо. Обе идеи хорошие, тем более, что asm меня совсем не смущает. А WINE-код думаю найти смогу. Ещё раз спасибо за идеи.
P.S. По поводу (диз)асемблера. Насколько я знаю в гнусном ассемблере запись опкодов сильно отличается от masm и их подобным. Не подскажете дизасемблер, который генерил бы код, компилируемый гнусом ?
Ну раз уж начал спрашивать... smile Кто-нибудь знает где можно найти WINE'овские исходники ? Спасибо.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
W4FhLF
Дата 27.6.2010, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: нет
Всего: 121



Сколько dll весит? Используется только одна функция? Может имеет смысл заюзать IDA+HexRays. Правда это нарушение авторских прав. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
borisbn
Дата 27.6.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



Цитата(W4FhLF @  27.6.2010,  13:59 Найти цитируемый пост)
Правда это нарушение авторских прав

Если ты про IDA+HexRays (кстати, а что это такое? IDA знаю, HexRays - нет), то хез, а dll-ка принадлежит нам (мы её заказали и купили).

Всё-таки решил делать примерно так:
user posted image
Вопрос: кто-нибудь видит проблемы, кроме быстродействия ?

Это сообщение отредактировал(а) borisbn - 27.6.2010, 19:19


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
kosmonaFFFt
Дата 27.6.2010, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: 1
Всего: 5



Насчет вайновских исходников, спроси у гугла слово wine, дальше по обстоятельствам... ) Я их неоднократно в течении 5 минут так находил...
А еще я тут вспомнил про виндовые LoadLibrary и GetProcAddress или как оно там, и именно их я бы попробовал выдернуть из вайна или заюзать как нибудь напрямую без выдергивания...


--------------------
user posted image
PM MAIL ICQ   Вверх
borisbn
Дата 28.6.2010, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



kosmonaFFFt, думаю тут LoadLibrary и GetProcAddress не обойдёшься, т.к. dll-ка вызывает RTL-функции visual C new и delete


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
xvr
Дата 28.6.2010, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 20
Всего: 223



Посмотри, что dll импортирует из Windows. Если там ничего системного нет, то действительно можно напрямую (выдрав из Wine загрузчик) ее использовать. А вот если там есть использование каких либо системных вызовов, то труба  smile 
PM MAIL   Вверх
borisbn
Дата 28.6.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: нет
Всего: 135



xvr, спасибо за наводку. Посмотрел, что она импортирует и увидел nsp (intel'евская библиотека обработки сигнала), а у той, в свою очередь, целый "букет" импортируемых функций из kernel32, user32 и т.п.
Решил делать как писал двумя постами выше.
Всем спасибо. Закрываю 

Это сообщение отредактировал(а) borisbn - 28.6.2010, 19:48


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Amp
Дата 29.6.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: нет
Всего: 17



Линуксовый mplayer помнится тащил связку win32-кодеков в виде кучи dll-ок, я запамятовал - он их каким образом умудрялся использовать?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0858 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.