1. 程式人生 > >VS使用QT編寫dll程式

VS使用QT編寫dll程式

前言:

由於種種原因,我們可能需要將Win32/MFC程式與QT程式在一起互動呼叫,(比如將QT介面程式編寫成dll動態庫供Win32/MFC程式進行呼叫)。這時候就會出現問題,由於MFC和QT的訊息迴圈機制不同, QT 必須有呼叫 QApplication 的 exec 方法,這樣才能產生訊息迴圈, QT 的程式才可以執行。所以說如果我們使用了 QT 編寫了 dll 程式,在普通的 windows 程式中是不能呼叫的。在呼叫的時候會出現錯誤。所以,要讓QT寫的DLL可以供 windows 程式呼叫,就需要使用QT所提供的互動框架。

即:qtwinmigrate。

具體使用步驟:

2、在VS下建立QT的DLL工程。

3、將qtwinmigrate目錄下的src目錄中的qwinwidget.cpp、qwinhost.cpp和qmfcapp.cpp檔案以及相應的.h檔案全部複製你的dll工程目錄下,然後新增到工程裡。

4、在qtwinmigrate\examples\qtdll目錄下有一個main.cpp檔案,其中DllMain 函式是 windows 動態庫的入口函式,我們需要將main.cpp檔案中的內容拷貝到自己工程相應的檔案中。