[问题] 获取执行档路径

楼主: 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