蜇使用系統::字符串::格式我有一個會從的FormatMessage返回的LPTSTR(wchar_t的*)的字符串,我想在一個字符串使用::格式,但我無法弄清楚如何指定它。考慮這些代碼行:與LPTSTR(wchar_t的*)從非託管代碼
wchar_t * szErrMsg = L"Error Msg from Unmanaged"; // faking the message from FormatMessage
System::String^ AString = gcnew System::String(szErrMsg); // works
System::String^ BString = System::String::Format(L"{0}.", AString); // works
System::String^ CString = System::String::Format(L"{0}.", szErrMsg); // no overloads match
System::String^ DString = System::String::Format(L"{0}.", L"Error Msg from Unmanaged"); // works
AString和BString工作正常。有趣的是,DString也可以。但不是CString。
我當然可以將所有消息片段變成:: String對象(如AString),然後將整個消息格式化爲另一個字符串(如BString),但我寧願放棄,如果可以正確地指定CString,以便它可以工作。我懷疑這是可能的,因爲DString的作品。
我也試過:: StringBuilder的,並得到了與.Append一些野趣的結果 - 顯然compilier認爲szErrMsg是由於某種原因,一個bool。它甚至給我關於bool轉換的性能警告。
最終消息有三個部分,如果我可以使用:: Format來構建它,那將會很好。
對此提出建議?
鼠!我希望有某種方式可以告訴:: Format參數是一個非託管的字符串指針,並且請轉換(就像:: String構造函數所能做的那樣)作爲進程的一部分。謝謝。 – Greg