qt dll的调用及与主程序的交互

本文详细介绍了如何将Qt程序封装成DLL并与MFC、C#等其他程序进行交互。主要内容包括Qt生成DLL的步骤,如何在DLL中启动QApplication事件循环,以及在MFC中调用Qt DLL的方法。同时,文中还解决了DLL调用时子窗口关闭导致父窗口自动关闭的问题,并介绍了DLL如何调用主程序的回调函数机制。
摘要由CSDN通过智能技术生成

近期,研究了下将qt程序封装成dll,与其他程序(mfc、c#)进行调用交互,主要涉及几个方面内容:

一、qt生成dll

按照qt官方引导,可以很简单的生成dll,但是此类dll只能与qt程序进行交互;由于qt 的事件循环机制与windows寻坏机制不同,要想在其他程序中启动qt的dll,必须加入QApplication,以启动qt的事件循环机制。

通过官方发布的qtwinmigrate文件,可以非常方便的实现dll。加载exmaples/qtdll的.pro工程文件,在qtcreator可以看到main.cpp有这两个函数

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

    //此蔚dll的入口函数
    static bool ownApplication = FALSE;
   //启动QAppliction,具体见帮助说明

    if ( dwReason == DLL_PROCESS_ATTACH )
ownApplication = QMfcApp::pluginInstance( hInstance );
    if ( dwReason == DLL_PROCESS_DETACH && ownApplication )
delete qApp;


    return TRUE;
}

//建立导出函数

extern

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值