Qt调用DLL方法一:使用Win32 API
h文件
typedef bool (CALLBACK* SetKeyBoardHook)(HWND);
HINSTANCE hDLL; // Handle to DLL
SetKeyBoardHook lpfnDllFunc1; // Function pointer
cpp文件
void MainWindow::test()
{
hDLL = LoadLibrary("dllhook");//"dllhook"为DLL的文件名
if(hDLL != NULL)
{
qDebug() << "dllhook加载成功";
//"SetKeyBoardHook"为动态库里实现的函数名称
lpfnDllFunc1 = (SetKeyBoardHook)GetProcAddress(hDLL, "SetKeyBoardHook");
if(lpfnDllFunc1 != NULL)
{
qDebug() << "SetKeyBoardHook加载成功";
bool flag = lpfnDllFunc1((HWND)this->winId());
if(flag)
{
qDebug() << "钩子设置成功";
}
}
else
{
FreeLibrary(hDLL);
return;
}