#Define& lpCmdLine参数

时间:2013-11-06 12:37:04

标签: c++ string arguments command-line-arguments c-preprocessor

是否可以从启动参数定义字符串?

例如,我在头文件中有这段代码:

#define MsgBox "Hello there!"

如何使 #define 字符串来自命令行参数?

所以,如果我像这样启动我的应用程序:app.exe -Test! - MsgBox将被定义为“Test!”。

对不起,如果这是一个不好的解释,但希望至少有一些人理解。 从命令行参数获取 #define MsgBox 非常重要,而不是从程序的入口点获取。所有代码都应该在头文件中。

老实说,我没有尝试任何,因为我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

这是不可能的,因为#define是一个预处理器命令。也就是说,您可以将其视为在编译时中进行的查找和替换。 (它们可用于其他事情,但至关重要的是,它在编译时进行评估)。

为什么不使用变量呢?这样它也是类型安全的。

更新:使用define

假设您已将参数存储在某个全局lpCmdLine

然后你的定义变为

#define MsgBox lpCmdLine