爲了傳遞一個整數值給SetWindowTextW(),(我正在使用一個unicode構建,用C++和Visual Studio 2010),這個函數是否會返回一個LPCWSTR?我很確定這裏有些東西我不理解,因爲它會返回一個奇怪的值。我知道一個LPCWSTR是一個空終止的長指針寬字符字符串,但我仍然認爲我錯過了一些東西!?從函數返回LPCWSTR?
const LPCWSTR int2LPCWSTR (int integer)
{
wstringstream wss;
wss << integer;
const wstring& wstr = wss.str();
const LPCWSTR p = wstr.c_str();
return p;
}
那麼我怎麼能修改它來返回一個wstring?可以將這個值傳遞給SetWindowTextW(),還是需要獲取.c_str()? – rem45acp 2010-12-07 17:41:09
你可以使用我粘貼的功能。並且你是正確的 - 那麼就採取該返回值的.c_str()。一般來說,由於std :: string/std :: wstring抽象了字符串的所有內存管理,所以在代碼中默認使用它們,並且只處理。處理無法處理std :: string的外部內容時,使用c_str()或c-style字符串。 – tenfour 2010-12-07 17:44:05