作者:朱金灿
来源:http://blog.csdn.net/clever101
加载动态库的代码:
typedef void (*Execute)(); // 定义导出函数类型
QString strConfigPath ="D:\\Debug\\test.dll";
QLibrary hdll( strConfigPath ); //加载dll,当前目录
if(hdll.load())
{
Execute fun1 = (Execute)hdll.resolve("execute"); //用resolve来解析execute函数
if ( fun1 ) //解析成功则调用函数
{
fun1();
}
}
注意在Windows环境下QT不能加载使用了MFC的dll,因为加载后会崩溃,只能加载使用Win API的dll和qt编写的dll。
弹出模态对话框:
MyDlg *pDlg = new MyDlg();
pDlg->exec();
delete pDlg;
弹出非模态对话框:
MyDlg* pDlg = new MyDlg();
pDlg->setModal(false);
pDlg->show();
注意弹出对话框一般通过new一个对象出来,如果使用临时变量的话,出现作用域的话就会对话框会自动销毁。
本文详细介绍了如何在QT环境下加载动态库,并通过QT实现弹出模态和非模态对话框的功能。重点在于解决在Windows环境下QT加载使用了MFC的dll时可能遇到的问题,以及如何正确地在QT中调用动态库中的函数和展示对话框。
8034

被折叠的 条评论
为什么被折叠?



