我有一個Qt應用程序封裝在DLL內部以插入第三方應用程序。當這些第三方應用程序啓動Qt應用程序時,第三方應用程序中的工具欄提示停止工作。只要我關閉了Qt應用程序,它們就會再次運行。在與非Qt應用程序相同的進程中加載Qt應用程序打破非Qt應用程序的工具提示
我在Visual Studio中創建了一個非Qt可執行文件(本例中爲具有開箱即用設置的MFC MDI應用程序)和一個Qt應用程序(我將其更改爲DLL),從而重新創建了該問題。我添加了一個菜單項非Qt的可執行文件,以及處理該事件,如下所示:
void MFCApp::OnFileLaunch()
{
QtApp qtApp;
qtApp.Launch();
}
的QtApp類不公開的Qt API在所有,啓動()是實現如下:
int QtApp::Launch()
{
int argc = 0;
char *argv = 0;
QApplication a(argc, &argv);
MyMainWindow w;
w.show();
return a.exec();
}
除Qt應用程序顯示外,非Qt應用程序保持完全響應,除了工具欄工具提示(以及鍵盤快捷鍵,如Ctrl A for Select All)。
我懷疑這可能是一個Qt錯誤,但只是想檢查,以防萬一它是我的啓動代碼是錯誤的。
我正在使用Qt 4.5.2。
謝謝
感謝您的回覆。除了單獨的流程之外,我不確定我有多少選擇?我無法更改第三方應用程序,而Qt DLL只需要一個QApplication對象。我同意這是一堆蠕蟲,但它似乎都適用於第三方應用程序中的所有其他事件。謝謝。 – Robin 2011-01-10 10:25:15