wxStandardPaths().GetDataDir()
这个函数可以用来非常方便的取得exe的位置。(Manual)
可是用vc编译的debug版却没有包含最后的debug目录。
很是疑惑啊!
以为vc添加了什么神奇的东西。
看了
wxStandardPaths::GetDataDir() 的源代码,
1 wxString wxStandardPaths::GetDataDir() const
2 {
3 // under Windows each program is usually installed in its own directory and
4 // so its datafiles are in the same directory as its main executable
5 return GetAppDir();
6 }
而
1 wxString wxStandardPaths::GetAppDir()
2 {
3 wxFileName fn(wxGetFullModuleName());
4
5 // allow running the apps directly from build directory in debug builds
6 #ifdef __WXDEBUG__
7 wxString lastdir;
8 if ( fn.GetDirCount() )
9 {
10 lastdir = fn.GetDirs().Last();
11 lastdir.MakeLower();
12 if ( lastdir.Matches(_T("debug*")) || lastdir.Matches(_T("vc_msw*")) )
13 fn.RemoveLastDir();
14 }
15 }
16