是否有任何連接方式#define宏在c + +(ms編譯器)?「定義」宏串聯和_TEXT
我有現有的代碼是這樣的:
#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。
[C預處理器和串聯]的可能重複(http://stackoverflow.com/questions/1489932/c-preprocessor-and-concatenation) – 2011-06-03 09:49:03
不,沒有_TEXT宏有 – 2011-06-03 09:52:32
您可以簡單地鍵入#define LOG_FILENAME NAME_PART1 NAME_PART2「.log」還是我錯過了什麼? – 0xbadf00d 2011-06-03 09:56:32