2011-09-21 19 views
0

問題:我想用不同的參數運行我的應用程序,例如app.exe -param1,稍後我需要啓動app.exe -param2。參數來自參數。我需要放置到全局靜態值的參數,以便能夠隨時從代碼中的任何位置獲取它。如何用不同的靜態值啓動同一個應用程序的兩個實例?

如何做到這一點?

我曾嘗試:

static QString gMyValues; 

然後從main.cpp我做了什麼:

::gMyValues = QString(argv[ argc - 1 ]); 

,然後從任何一類,我試圖讓:

::gMyValues; 

但沒有運氣,gMyValues空,但在乞討它是與arg值...

PS。讓它只是int的參數。

謝謝!

+1

有一個Qt的方式來獲取參數:http://doc.qt.nokia.com/latest/qcoreapplication.html#arguments – 2011-09-21 18:25:08

回答

4

我的猜測是你有多個變量的定義。你在頭文件中有這條線嗎?

static QString gMyValues; 

如果是這樣,每包括它都會有自己的gMyValues複製每個源文件。並且只有main.cpp中的一個將填充正確的值。

你應該聲明它的頭文件是這樣的:

extern QString gMyValues; 

而且在main.cpp定義它:

QString gMyValues; 

在全球範圍內的static關鍵字並不意味着你所想象的那樣。這意味着私人鏈接:http://thesmithfam.org/blog/2010/06/12/the-many-meanings-of-the-c-static-keyword/

+0

thnks爲答案。 – mosg

相關問題