MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理

[cpp] view plaincopyprint?
  1. #include <qmfcapp.h>
  2. #include <qwinwidget.h>
  3. #include <QtGui>
  4. #include <QtGui/QMessageBox>
  5. #include <windows.h>
  6. #include <QTextCodec>
[cpp] view plaincopyprint?
  1. #include "widget.h"
  2. BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ )
  3. {
  4. static bool ownApplication = FALSE;
  5. //加入本地语言支持
  6. QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
  7. QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
  8. if ( dwReason == DLL_PROCESS_ATTACH )
  9. {
  10. ownApplication = QMfcApp::pluginInstance( hInstance );
  11. }
  12. if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
  13. {
  14. qApp->quit();
  15. delete qApp;
  16. }
  17. return TRUE;
  18. }
  19. extern "C" __declspec(dllexport) int ShowDialog( HWND parent)
  20. {
  21. QWinWidget win(parent, NULL, Qt::Window);
  22. win.showCentered();
  23. win.center();
  24. QHBoxLayout hbox(&win);
  25. Widget *widget = new Widget(&win);
  26. widget->setWindowFlags(Qt::Window);
  27. hbox.addWidget(widget);
  28. win.show();
  29. qApp->exec();
  30. }

转载于:https://blog.51cto.com/laokaddk/871770

MFC调用Qt生成的dll相关推荐

  1. vs2008中调用matlab生成的dll

    vs2008中调用matlab生成的dll matlab版本为:matlab7.11.0(R2010b) vs2008 1.在matlab中生成dll 在m文件中实现如下功能: 获得N个魔方矩阵的秩. ...

  2. c#调用matlab生成的dll

    c#调用matlab生成的dll,这个过程分为三步: 1.编写matlab代码 2.将.m文件编译成dll 3.在C#代码里调用dll 打算实现的功能: 求x*y的二维数组的均方差 一.编写matla ...

  3. qt调用matlab生成的dll库

    最近由于在项目中要用到matlab的算法,而用C++转换matlab算法非常麻烦,所以采用qt+matlab混合编程的方法,在使用中遇到了些许问题,特记录如下. 一.生成matlab库 1.首先需要下 ...

  4. Delphi 调用VC生成的DLL

    1. 在VC中新建一个 DLL 工程. 写如代码,如: extern "C" {   _declspec(dllexport) int getPPLength();   _decl ...

  5. java调用qt生成的dll_在Qt中调用vs2008生成的dll以及lib的方法

    [实例简介] 详细讲解了制作lib,dll的过程,以及如何在同平台进行对两种链接库的使用,并且详细说明了在跨平台的时候,如何进行操作 新建一个工程添加.cpp文件,在文件里面进行如下的代码: #pra ...

  6. VB6 调用 Nim 生成的 DLL

    2019独角兽企业重金招聘Python工程师标准>>> 关于 Nim Nim 是德国人 开发的编程语言,最初叫 Nimrod.Nim 有下面几个特点: 强制缩进语法 AST 操控 编 ...

  7. C#调用Matlab生成的dll方法

    其实整个过程比较简单,但是需要心细一点. 需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MATLAB Compiler Runtime,这个文件(MC ...

  8. 如何在Delphi 中调用C#生成的DLL类库

    最近需要写一个和给上位机和下位机通讯的接口,而上位机是用Delphi开发的,所以就需要用C#做一类库给Delphi调用 大概步骤: 1.首先在VS2008中新建一个类项目名为TestDelphi,然后 ...

  9. matlab调用VC++生成的DLL

    matlab是一种脚本语言,执行效率肯定没有C语言那样高效,当然matlab支持调用由C语言生成的.dll动态链接库,从而可以达到matlab与C语言混合便宜的效果. 注意:我使用的平台是matlab ...

最新文章

  1. android 保存 用户名和密码 设置等应用信息优化
  2. php带参数单元测试_一文搞定单元测试核心概念
  3. http-关于application/x-www-form-urlencoded等字符编码的解释说明
  4. 蓝绿发布、滚动发布、灰度发布,有什么区别?
  5. SQLite的基本使用一
  6. python怎么安装beautifulsoup,python – 安装BeautifulSoup
  7. Java常用集合类:ArrayList
  8. linux命令--vi,vim
  9. zabbix4.2中163邮箱25端口无法发送邮件
  10. 具体数学-第8课(取整进阶)
  11. 群集之 COROSYNC OPENAIS +PACEMAKER +REBD+WEB
  12. Python字符串逆序输出(六种方法)
  13. linux 一键网克,MaxDOS 8.0
  14. 读《谁说大象不能跳舞》
  15. 17.keep-alive的作用及用法
  16. dataTables -- ajax 分页基本使用
  17. 计算机网络——BGP协议
  18. ShowWindow 隐藏、显示、最大化、最小化窗口
  19. 微信开发之小程序的页面布局
  20. python中的global是什么意思_Python中的global关键字,你了解吗?

热门文章

  1. 一款简洁大气的商城官网介绍源码
  2. 一个社交电商小程序配套的平台接
  3. 跨平台桌面应用开发工具Electron v11.0.4
  4. Spring Cloud微服务之Feign服务调用(十一)
  5. 用Google App Engine做个人代理服务器
  6. 关于“服务器提交了协议冲突. Section=ResponseStatusLine问题请
  7. Memcache分布式部署方案
  8. SQL Server 2000订阅与发布的具体操作
  9. nginx下gzip配置参数详解
  10. 【转载】IDEA中Git的更新/提交/还原方法