以下是引用mywisdom88在2016-2-4 09:49:34的发言:
对于红色部分,比如我安装程序在 D:\Test中,Application.ActiveProject.HomeDir的值不是D:\Test
如果把把这个目录复制到E盘去运行,如 E:\Test,此时,Application.ActiveProject.HomeDir是?D:\Test还是E:\Test
对于红色部分,比如我安装程序在 D:\Test中,Application.ActiveProject.HomeDir的值不是D:\Test
如果把把这个目录复制到E盘去运行,如 E:\Test,此时,Application.ActiveProject.HomeDir是?D:\Test还是E:\Test
我那段説了,這是在VFP開發IDE中用的。這個屬性記錄在.pjx/.pjt表中,是靜態的,當你把項目复製到別的目錄,表中的數據並沒有改動,則仍然指向原來的目錄。我還説了,你要主動用才有用,當你把SET DEFAULT TO指向這個目錄時,才起那樣的作用。但是,我們發佈程序,是不會把項目源代碼發出去的,release時必定編譯爲獨立可執行文件,在此狀態下不存在這個對象(ActiveProject)也沒有這個屬性。所以在我們的源代碼中,首先要判斷程序是在VFP IDE中執行還是在.exe中執行,具體示範用法在我以前發過的代碼中有。
程序編譯爲獨立.exe形式,它的默認當前目錄是這個.exe文件自身所在的目錄。
用法代碼:
程序代码:
IF Application.StartMode == 0 SET DEFAULT TO (Application.ActiveProject.HomeDir) SET PATH TO ADDBS(Application.ActiveProject.HomeDir) + "Source" ADDITIVE ENDIF
[此贴子已经被作者于2016-2-4 13:53编辑过]
授人以渔,不授人以鱼。