[問題] 如何把wstring轉成LPCTSTR?
我是用Visual C++ 2005 (MFC)
想請問一下..有個變數Value
wstring Value = Field.subval(_T("value"));
把某個Static改成Value的值
SetDlgItemText(IDC_PAY_NAME, Field2Value);
會有錯誤訊息:
無法將參數 2 從 'std::wstring' 轉換成 'LPCTSTR'
上網查發現是要轉成寬字節(Unicode)的關係
於是中間加了...
int
len=MultiByteToWideChar(CP_ACP,0,Field2Value.c_str(),Field2Value.size(),NULL,0);
TCHAR *buffer=new TCHAR[len+1];
//多字節編碼轉換成寬字節編碼
MultiByteToWideChar(CP_ACP,0,Field2Value.c_str(),Field2Value.size(),buffer,len);
buffer[len]='\0';//添加字符串結尾
//刪除緩衝區並返回值
wstring return_value;
SetDlgItemText(IDC_PAY_NAME, return_value);
在那兩個函數還是有錯誤訊息
無法將參數 3 從 'const wchar_t *' 轉換成 'LPCSTR'
請問這要怎麼改呢?
感謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.248.105.178
推
03/13 17:35, , 1F
03/13 17:35, 1F
→
03/13 17:36, , 2F
03/13 17:36, 2F
→
03/13 17:38, , 3F
03/13 17:38, 3F
→
03/13 17:38, , 4F
03/13 17:38, 4F
→
03/13 17:38, , 5F
03/13 17:38, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章