[問題] CString replace 轉換怪怪的

看板C_and_CPP作者 (泰勒大師)時間13年前 (2011/05/25 20:17), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC2008 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 我先用對話盒讓使用者選擇路徑 然後再用CString裡面的replace轉成絕對路徑("\\"->"/") 但是轉出來的路徑後面就會被截掉 像是 C:\OpenCV2.0\interfaces\python 但是轉換後變成 C:/Op 我真正要的是 C:/OpenCV2.0/interfaces/python 是有把我要的轉換到 不過都會少了後面 程式碼(Code):(請善用置底文網頁, 記得排版) CFileFind f; FilmPath.Replace(L"\\",L"/"); CString type=L"*.*"; CString root = FilmPath+L"/"+type; BOOL bFind = f.FindFile( root); 補充我的FilmPath的輸入方式 GetPrivateProfileString(L"System",L"FilmPath",INI_S_ERROR ,FilmPath.GetBuffer(MAX_PATH),MAX_PATH,Path); 是從.ini裡讀出來的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.118.212

05/25 21:23, , 1F
GetBuffer 不能這樣用,用完要做 ReleaseBuffer 才能繼續
05/25 21:23, 1F

05/25 21:26, , 3F
簡單講,就是任何阿里不答的函數都能修改 FilmPath 的內容
05/25 21:26, 3F

05/25 21:26, , 4F
但是這些函數以為他是一個 C-Style 字串,所以不會去更新
05/25 21:26, 4F

05/25 21:26, , 5F
CString 物件的狀態,他們也不知道怎麼處理,故需要手動
05/25 21:26, 5F

05/25 21:36, , 6F
原來是這樣 改了之後成功了 感謝解答~
05/25 21:36, 6F
文章代碼(AID): #1DtFC_1J (C_and_CPP)