MFC和Qt分别使用Qt生成的Dll。
来源:互联网 发布:手机动漫壁纸软件 编辑:程序博客网 时间:2024/05/24 05:03
MFC和Qt分别使用Qt生成的Dll。
1、2017年8月3日17:56:33。
#ifndef QTDLGDLL#define QTDLGDLL#ifdef QTDLGDLL_LIBRARY//#include <QtCore/qglobal.h>//# define QTDLGDLL_API Q_DECL_EXPORT#define QTDLGDLL_API __declspec(dllexport)#else#define QTDLGDLL_API __declspec(dllimport)#endif#define WIND_TYPE_NO 0#define WIND_TYPE_QT 1#define WIND_TYPE_WINDOWS 2typedef unsigned __int64 paduint64; /* 64 bit unsigned */typedef struct CPadSolderSpec {//面积.paduint64 m_uArea;//高度.unsigned long m_uHeight;} CPadSolderSpec;//struct CPadSolderSpec;#ifdef __cplusplusextern "C" {#endifQTDLGDLL_API int __cdecl OpenPadSettingDialogByMFC(void * ParentWind, CPadSolderSpec * pSpec);QTDLGDLL_API int __cdecl OpenPadSettingDialogByQt(void * ParentWind,CPadSolderSpec * pSpec);#ifdef __cplusplus}#endif#endif
#include "QtDlgDll.h"#include "PadSettingDialog.h"#include <QApplication> #include <QThread> #include <windows.h>bool g_bRun = false;int OpenPadSettingDialogByMFC(void * ParentWind, CPadSolderSpec * pSpec){if (g_bRun){return 0;}g_bRun = true;if (NULL == ParentWind){return 0;}HWND hParentWnd = (HWND)ParentWind;HWND hSaveParentWnd = hParentWnd;Qt::HANDLE ThreadIdBefore = QThread::currentThreadId();int argc = 0;char *argv[1] = {NULL};QApplication a(argc, argv);Qt::HANDLE ThreadIdAfter = QThread::currentThreadId();//模态对话框.CPadSettingDialog aDlg(NULL, pSpec);aDlg.setModal(true);//disable掉父窗口 hParentWnd = hSaveParentWnd;while (hParentWnd != NULL){EnableWindow(hParentWnd, FALSE);hParentWnd = GetParent(hParentWnd);}aDlg.show();a.exec();//aDlg.exec();//恢复父窗口的enable状态 hParentWnd = hSaveParentWnd;while (hParentWnd != NULL){EnableWindow(hParentWnd, TRUE);hParentWnd = GetParent(hParentWnd);}g_bRun = false;return 1;}int OpenPadSettingDialogByQt(void * ParentWind, CPadSolderSpec * pSpec){QWidget *parent = (QWidget *)ParentWind;//模态对话框.CPadSettingDialog aDlg(parent, pSpec);aDlg.exec();return 1;}
MFC:
CPadSolderSpec aSpec;void CtestMFCDlg::OnBnClickedOk(){DWORD id1 = ::GetCurrentThreadId();_TCHAR sId1[100];_i64tot_s(id1, sId1,100,16);this->MessageBox(sId1, sId1, MB_ICONINFORMATION);OpenPadSettingDialogByMFC(m_hWnd,&aSpec);DWORD id2 = ::GetCurrentThreadId();_TCHAR sId2[100];_i64tot_s(id2, sId2, 100, 16);this->MessageBox(sId2, sId2, MB_ICONINFORMATION);int a = 1;a++;// TODO: 在此添加控件通知处理程序代码//CDialogEx::OnOK();}
Qt:
CPadSolderSpec aSpec;void MainWindow::on_pushButton3_clicked(){OpenPadSettingDialogByQt(NULL,&aSpec);//OpenPadSettingDialogByQt(this, &aSpec);return;
阅读全文
0 0
- MFC和Qt分别使用Qt生成的Dll。
- 在MFC中使用Qt生成的DLL
- 在MFC中使用Qt生成的DLL
- Qt关于dll的生成和使用(Qt C++ li…
- Qt关于dll的生成和使用(Qt C++ li…
- QT 加载 MFC 的 dll
- mfc调用qt的dll
- QT生成dll和lib
- VC++生成DLL,Qt中使用DLL
- VC++生成DLL,Qt中使用DLL
- qt dll的创建和使用
- Qt动态库的生成和使用
- QT的DLL加载使用
- Qt调用qt生成的dll 显式和隐式(静态动态)
- QT生成DLL,调用DLL
- QT生成DLL,调用DLL
- QT生成DLL,调用DLL
- windows 下Qt调用Qt生成的dll
- 数据库总结(二)
- Android多渠道打包
- JVM内存管理和GC机制
- 畅通工程再续||HDU1875
- Python在操作系统层面上的操作
- MFC和Qt分别使用Qt生成的Dll。
- HDU1405 The Last Practice
- linux中硬链接与软链接的区别与联系
- iOS开发中系统的UITableViewCell只有当有数据的时候显示分割线
- 外网ip注册dubbo服务
- Jedis
- HDU 1130 How Many Trees卡特兰数
- HTTP状态码查询手册
- linux shell命令查看接口索引--ip link show