操作< <不是一個連接運算符,這是一個特殊的重載運營商通過流類型讓你發送數據流。它只適用於使用流的情況。
您有兩種選擇。首先,你可以使用一個std :: wstring的:
std::wstring(L"Initial Catalog=DatabaseName;Data Source=") + SERVER_NAME + L";";
或者你可以使用一個wstringstream(從<sstream>
頭):
std::wstringstream stream;
stream << L"Initial Catalog=DatabaseName;Data Source=" << SERVER_NAME << L";"
使用stream.str()
得到在這種情況下產生的字符串。流式方法的優點是,即使並非所有要連接的東西都是字符串,也可以使用它。
如果您要打印到現有的流(如wcout),那麼您可以直接跳過字符串流並直接使用它。
正如其他答案指出的那樣,如果SERVER_NAME是一個帶有#define的常量創建,則可以使用L"Initial Catalog=DatabaseName;Data Source=" SERVER_NAME L";"
。如果這是一個const wchar_t*
,但它不起作用。
招致運行時開銷剛粘上在編譯時已知的三個常量?不要這樣想。 – 2011-06-07 14:54:37
儘管如此,'L'string1「CONSTANT L」string2「'方法只適用於常數是#define而不是實際的const。 – Sven 2011-06-07 14:59:00
謝謝,它爲我工作,是的,常數是#define – 2011-06-07 15:09:46