в коде такая штука HMODULE hPlugin = LoadLibrary(...) и дальше GetProcAdress(...). Оно работает, но, во первых это C, а все остальное C++, а во вторых есть подозрение что оно не кросс-платформенное (остальное написано на WTL, но переписываю на Qt). Есть какой-то более современный способ это сделать? Вроде была boost::dll, но чем-то не понравилась (хотя, это было пару лет назад)
Это выньапи
Напиши RAII-обёртку в полсотни строк (проблему кроссплатформенности не решит)
утащи платформозависимый код LoadLibrary vs dlopen GetProcAddress vs dlsym
boost::dll решает задачу целиком и полностью
Раз на Qt переписываете, берите https://doc.qt.io/qt-5/qlibrary.html : typedef void (*MyPrototype)(); MyPrototype myFunction = (MyPrototype) QLibrary::resolve("mylib", "mysymbol"); if (myFunction) myFunction();
Обсуждают сегодня