【发布时间】:2011-06-03 09:45:57
【问题描述】:
在 c++(ms 编译器)中有没有连接 #define 宏的方法?
我有这样的现有代码:
#define LOG_FILENAME _TEXT("VendorBlaBlaDriver.log")
#define REGISTRY_FILENAME _TEXT("VendorBlaBlaDriver")
#define VENDOR_NAME _TEXT("VendorBlaBla")
我想做以下事情:
#define NAME_PART1 "VenorBlaBla"
#define NAME_PART2 "Driver"
#define LOG_FILENAME _TEXT(NAME_PART1 NAME_PART2 ".log")
#define REGISTRY_FILENAME _TEXT(NAME_PART1 NAME_PART2)
#define VENDOR_NAME _TEXT(NAME_PART1)
但是编译器给了我一个错误:
error C2308: concatenating mismatched strings
有什么方法可以做到这一点吗?问题是这是一个组件,我想稍后为编译器指定 -D 选项。我不想将 NAME_PART1 和 NAME_PART2 存储在源代码中。
【问题讨论】:
-
不,那里没有 _TEXT 宏
-
您可以简单地键入 #define LOG_FILENAME NAME_PART1 NAME_PART2 ".log" 还是我遗漏了什么?
-
提示:如果您遵循建议并多次使用
_TEXT,您可以使用简短的_T宏,该宏扩展为相同。
标签: c++