您的位置:首页 > 编程语言 > Qt开发

可以供MFC调用的,QT实现的DLL(qtwinmigrate实现)

2015-11-25 07:59 513 查看
MFC和QT的消息循环机制不同,所以,要让QT写的DLL可以供MFC调用,要做一点特殊的处理

[cpp] view plaincopyprint?

#include <qmfcapp.h>

#include <qwinwidget.h>

#include <QtGui>

#include <QtGui/QMessageBox>

#include <windows.h>

#include <QTextCodec>

[cpp] view plaincopyprint?

#include "widget.h"

BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpvReserved*/ )

{

static bool ownApplication = FALSE;

//加入本地语言支持

QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

if ( dwReason == DLL_PROCESS_ATTACH )

{

ownApplication = QMfcApp::pluginInstance( hInstance );

}

if ( dwReason == DLL_PROCESS_DETACH && ownApplication )

{

qApp->quit();

delete qApp;

}

return TRUE;

}

extern "C" __declspec(dllexport) int ShowDialog( HWND parent)

{

QWinWidget win(parent, NULL, Qt::Window);

win.showCentered();

win.center();

QHBoxLayout hbox(&win);

Widget *widget = new Widget(&win);

widget->setWindowFlags(Qt::Window);

hbox.addWidget(widget);

win.show();

qApp->exec();

}

/article/2021932.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: