LINUX.ORG.RU

Не выгружается библиотека QLibrary

 ,


0

3

Есть динамическая библиотека.

И есть программа UseLib, в которой я ее вот так использую:

QLibrary* lib;


lib = new QLibrary(path);
if(lib->load())
{
    ...
}


if( lib->unload() )
   delete lib;
Запускаю UseLib, вызываю какую-нибудь функцию библиотеки. Что-то меняю в проекте библиотеки, пересобираю ее. Все без ошибок, библиотека обновилась. В UseLib вызываю снова ф-цию, экспортируемую библиотекой. Вызывается старый вариант((

Почему?? можно ли избавиться от этого?

Если перезапустить UseLib, то вызывается новый вариант, с исправлениями. То есть дело не в библиотеке, а в ее загрузке/выгрузке.

И удалить библиотеку руками после того как сделали вот это:

if( lib->unload() )
   delete lib;
не удается.

Скажите, пожалуйста, ЧЯДНТ? Заранее спасибо.

Ответ на: комментарий от GPFault

Да, так. Делаю, как учил Шлее))

Чуть упростила свое:

typedef QString (*Fct) (const QString&); 
Fct fct = (Fct)(lib.resolve(funcName)); 
if (fct)
{ 
    str2 = (fct(str1)); 
} 

traktor
() автор топика

а документацию почитать ? bool QLibrary::unload() Unloads the library and returns true if the library could be unloaded; otherwise returns false.

может стоит проверить что возвращает lib->unload() ? возможно либе что-то мешает выгрузится.

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