[問題] 獲取執行檔路徑

看板C_and_CPP (C/C++)作者 (Jay)時間7年前 (2018/12/04 15:26), 7年前編輯推噓0(002)
留言2則, 2人參與, 7年前最新討論串1/1
開發平台(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

12/04 20:43, 7年前 , 1F
關鍵字 absolute / canonical / final / path 找找看
12/04 20:43, 1F

12/04 22:47, 7年前 , 2F
用boost::filesystem::current_path抓路徑也許可行
12/04 22:47, 2F
我這邊忘記提到我是透過C搭配MFC所寫成的 會使用到一點點C++的STL 但主體是C 謝謝兩位前輩的意見,我會試試看 ※ 編輯: asdfg1597860 (59.127.200.146), 12/05/2018 09:07:39
文章代碼(AID): #1S1YmPqG (C_and_CPP)
文章代碼(AID): #1S1YmPqG (C_and_CPP)