• 6187阅读
  • 1回复

请问如何用QLibrary去调用动态链接库中的类的方法? [复制链接]

上一主题 下一主题
离线kevinxzl
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-16
我想使用动态链接库(GenToolkit.dll, GenToolkit.lib) 里面有很多类,其中的一个类头文件如下:

class DllExport TkWindowsDispatcher : private TkGenDispatcher
{
private:
HWND    m_Handle;
public:
TkWindowsDispatcher(TkGeneratorControl *control, HWND winhandle = 0);
~TkWindowsDispatcher();
void setWindowHandle(HWND winhandle);
...
}

如何在Qt中掉用这个动态链接库中的类TkWindowsDispatcher的方法
请指点一下我下面的code

.h 文件
#include "../include/tkwindowsdispatcher.h"

typedef void (*PVTkWindowsDispatcher)(TkGeneratorControl*, HWND);

class GenValidator : public QDialog
{
Q_OBJECT
...
private:
TkWindowsDispatcher    m_TkDispatcher;
...
}

.cpp 文件
...
QLibrary library( "../libs/GenToolkit.lib" );
    library.load();
    if( !library.isLoaded() )
    {
          qDebug() << "Cannot load library.";
          // return 0;
    }

PVTkWindowsDispatcher TkWindowsDispatcher = (PVTkWindowsDispatcher)library.resolve("TkWindowsDispatcher");
  
...
}

上面的用法对吗? 类里的每个public函数都要resolve() 吗? 谢谢大家的帮助!
[ 此帖被kevinxzl在2009-04-16 17:27重新编辑 ]
离线hyh0lh

只看该作者 1楼 发表于: 2014-05-21
lib库应该是静态库,不能用QLibrary加载。
快速回复
限100 字节
 
上一个 下一个