1. 程式人生 > >QT中呼叫之前已用c++寫好的程式

QT中呼叫之前已用c++寫好的程式

核心程式已經用c++寫好了,現在在用QT編一個使用者介面,想在這個介面中呼叫這個程式,並且把結果在介面中顯示出來。

程式是用c++寫的,最後出來一個debug資料夾,裡面有一個.exe檔案,這就是要呼叫的程式,是封裝好的。有個要注意的地方是,這個exe檔案

在執行的時候要從一些.txt啊或者其他的檔案中讀取資料,所以有用的檔案只有這個exe檔案和那些資料檔案,其他的.cpp什麼的都

沒用。

我把我的程式要用的.exe和要用的資料檔案.txt放在一起,都放在桌面new資料夾下

C:\Users\Administrator\Desktop\new

在實現呼叫的時候有
1) 核心程式作為獨立的程序,執行結果如果是輸出到stdout, 則在介面程式裡用QProcess與之通訊即可.


2) 修改核心程式原始碼,與UI的程式碼混合編譯.

QProcess的句子可以是:

#include<QProcess>
QProcess::startDetached("C:\\Users\\Administrator\\Desktop\\new\\DFSFindPath.exe",QStringList(),QString("C:\\Users\\Administrator\\Desktop\\new"));

設定一個槽把這個句子寫進去就行。

注意,上面第一個引數是程式.exe的路徑,第二個引數可以不用填,除非只用第一個打不開程式,第三個引數也是一個路徑我這裡是new資料夾的路徑。如果不填第三個引數的話,程式也可以執行,但不會輸出結果,因為它找不到這些.txt的資料檔案,即第三個引數指明程式的workingDirectory。

函式說明具體如下:

bool QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory, qint64 * pid = 0) [static]

剛開始使用qt,很多地方不懂,希望能給和我一樣的新手帶來一些幫助~