[問題] 獲取執行檔路徑

作者: asdfg1597860 (Jay)   2018-12-04 15:26:14
開發平台(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的路徑是否一致
但因為有/../的關係總是不一致
不曉得有沒有高手能解決這問題
問題打得有點亂 再請各位高手見諒
作者: poyenc (髮箍)   2018-12-04 20:43:00
關鍵字 absolute / canonical / final / path 找找看
作者: eye5002003 (下一夜)   2018-12-04 22:47:00
用boost::filesystem::current_path抓路徑也許可行

Links booklink

Contact Us: admin [ a t ] ucptt.com