问题:我想使用不同的参数运行我的应用程序,例如app.exe -param1
,稍后我需要启动app.exe -param2
。参数来自参数。我需要将参数置于全局静态值,以便能够随时从代码中的任何位置获取它。
怎么做?
我试过了:
static QString gMyValues;
然后从main.cpp
我做了一些事情:
::gMyValues = QString( argv[ argc - 1 ] );
然后从我想要的任何课程中获取:
::gMyValues;
但是没有运气,gMyValues是空的,但在乞讨时它与arg值...
PS。让它只是int
的参数。
谢谢!
答案 0 :(得分: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/