看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) WIN10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VISUAL STUDIO 2015 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) MFC 問題(Question): 透過GetModuleFileName(m_hInstance,buffer,256)去抓當前執行檔的路徑 不過在VS2003 抓到的會是C:\Project\Work\bin\Sin.exe 而在 VS2015 抓到的會是C:\Project\Work\Peds\..\bin\Sin.exe https://imgur.com/a/bTkxIVz 上面兩張是2015的配置下面兩張是2003 bin 跟Peds 是在Work資料夾內 bin 裡有Lesson資料夾跟執行檔(exe) 因為需求所以把exe檔輸出到bin檔 在2003輸出目錄不需要跟輸出檔一致但2015會要求所以配置上有些許不同 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 補充說明(Supplement): m_sDataPath = buffer; iIndex = m_sDataPath.ReverseFind('\\'); m_sDataPath = m_sDataPath.Left(iIndex); CString sLesson; sLesson.Format("%s\\Lesson",m_sDataPath); CFileDialog fd(TRUE, "pds", NULL, OFN_HIDEREADONLY, szFilter); sPath = fd.GetPathName(); 我想利用上面指令去得到bin檔下LESSON資料夾裡的檔案的路徑 再用CString的find比較sPath 跟sLesson的路徑是否一致 但因為有/../的關係總是不一致 不曉得有沒有高手能解決這問題 問題打得有點亂 再請各位高手見諒 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.200.146 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1543908377.A.D10.html
poyenc: 關鍵字 absolute / canonical / final / path 找找看 12/04 20:43
eye5002003: 用boost::filesystem::current_path抓路徑也許可行 12/04 22:47
我這邊忘記提到我是透過C搭配MFC所寫成的 會使用到一點點C++的STL 但主體是C 謝謝兩位前輩的意見,我會試試看 ※ 編輯: asdfg1597860 (59.127.200.146), 12/05/2018 09:07:39