LPCTSTR SpecFileName=::sysInI.currPath+"\\L1000A.ini";
::sysInI.currPath回傳的是string 型別,字串相加后,SpecFileName出現大量漢子亂碼。
經過斷點跟蹤,::sysInI.currPath變數回傳的值正常,請問到底是怎么回事?
整個工程的配置屬性中的字符集 使用的是使用多位元組字符集(沒使用unicode字符集)。
uj5u.com熱心網友回復:
string型別轉換成LPCSTR需要呼叫c_str()成員函式uj5u.com熱心網友回復:
但是CString型別字串里面沒有c_str() 成員函式。
補充一下,若在Unicode字符集下,LPCTSTR SpecFileName=::sysInI.currPath+"\\L1000A.ini";就顯示正常,不會 亂碼。可是若改字符集,則要修改的地方太多了,得不償失。
uj5u.com熱心網友回復:
::sysInI.currPath+"\\L1000A.ini";回傳一個臨時的變數,完了就銷毀了!而LPCTSTR是一個字串指標
使用下列陳述句試試:
CString SpecFileName=::sysInI.currPath+"\\L1000A.ini";
uj5u.com熱心網友回復:
獲得的SpecFileName里面仍然會亂碼,繼續執行,SpecFileName變數中只保留\L1000A.ini 這個字串,而::sysInI.currPath中的路徑字符沒有和\L1000A.ini 連接在一起!
uj5u.com熱心網友回復:
多位元組下:LPCTSTR SpecFileName=(CStringA)::sysInI.currPath+"\\L1000A.ini";
uj5u.com熱心網友回復:
LPCTSTR SpecFileName=::sysInI.currPath+L"\\L1000A.ini";uj5u.com熱心網友回復:
基礎的字串指標不支持 + 操作uj5u.com熱心網友回復:
你的那個string物件中存有漢字字符??uj5u.com熱心網友回復:
LPCTSTR SpecFileName = ::sysInI.currPath + TEXT("\\L1000A.ini");
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/75344.html
標籤:界面
