如何使用不同的静态值启动同一应用程序的两个实例?

时间:2011-09-21 16:08:23

标签: c++ qt instance

问题:我想使用不同的参数运行我的应用程序,例如app.exe -param1,稍后我需要启动app.exe -param2。参数来自参数。我需要将参数置于全局静态值,以便能够随时从代码中的任何位置获取它。

怎么做?

我试过了:

static QString gMyValues;

然后从main.cpp我做了一些事情:

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

然后从我想要的任何课程中获取:

::gMyValues;

但是没有运气,gMyValues是空的,但在乞讨时它与arg值...

PS。让它只是int的参数。

谢谢!

1 个答案:

答案 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/