| plikly 
								Гость
 | 
								|  | «  : Июня 18, 2012,  06:36 » |  | 
 
 Такая ситуация.Есть разделяемая библиотека, написанная на Qt4.
 В ней через export "C" экспортируются разные функции, их довольно много.
 Требуется эти функции вызывать из кода, написанного не на Qt и вообще не на С++.
 В чём проблема: библиотека написана кривовато, внутри использует потоки и таймеры, и всё это хозяйство не работает, если в вызывающем коде нет QApplication, чтобы работал eventLoop, и таймеры отказываются работать, если вызвать функцию из потока, который создан не Qt.
 
 Как можно обойти эти ограничения.
 Мне видится такой подход:
 создать библиотеку wrapper, повторяющий исходную библиотеку, и в котором через QLib будут загружены функции исходнйо библиотеки.
 В новой библиотеке будет один нормальный  поток с QApplication.
 При вызове функций из этой новой библиотеки каким-то образом (КАКИМ?) функция вызывается не в вызывающем потоке, а в потоке, в котором действует QApplication.
 
 Как-то так. Или хоть как по-другому, но чтобы условия задачки были соблюдены: код реально вызывался не из вызываемого потока, который не QThread, а так, как-будто бы для исходной библиотеки он был вызван из неё самой или другого приложения на Qt.
 
 |