0
有一個用QT(C++)編寫的編譯程序。在程序文件夾中添加了dll文件lib1.dll,lib2.dll等所有名稱。我怎樣才能在程序執行過程中獲得這些庫?即最初的方案是沒有他們如何在C++代碼執行過程中連接dll文件?
例如編譯:
int n = 10;
for(int i=0;i<n;i++)
{
include("lib"+i+".dll");
}
有一個用QT(C++)編寫的編譯程序。在程序文件夾中添加了dll文件lib1.dll,lib2.dll等所有名稱。我怎樣才能在程序執行過程中獲得這些庫?即最初的方案是沒有他們如何在C++代碼執行過程中連接dll文件?
例如編譯:
int n = 10;
for(int i=0;i<n;i++)
{
include("lib"+i+".dll");
}
的問題是使用QLibrary
解決for(int i=0; i<n;i++)
{
QString* pLoadLib =&sDrivers[i]; //запоминаем адрес переменной
std::cout<<sDrivers[i].toUtf8().constData()<<"\n";//выводим в консоль
QLibrary lib(*pLoadLib); //Разименование адреса - текст пути к ДЛЛ
if (!lib.load())
{
std::cout<<"driver not loaded\n";//error
}
else
{ typedef QString (*FuncType) (const QString&);
FuncType func = (FuncType)(lib.resolve("FuncName")); //Определяем функцию func как функция OddUpper из dll
if (func)
{
QString test = func("working");
qDebug()<<test;
}
if (!func)
{
std::cout<<"func not loaded";
}
lib.unload();
}
}
有很多[Windows API中的DLL相關的功能(HTTPS: //msdn.microsoft.com/en-us/library/windows/desktop/ms682599%28v=vs.85%29.aspx)。去看一下。 –
這個問題與Qt4和Brainfuck語言有什麼關係?請修改您的問題以僅包含相關標籤。 –