怎么處理VFP6中文版安裝出錯
發表時間:2023-08-03 來源:明輝站整理相關軟件相關文章人氣:
[摘要]黃金鐵微軟的數據庫開發工具Visual FoxPro 6.0在國內應用很廣,但也不可避免地存在某些Bug。近日,本人在使用VFP 6.0簡體中文版開發軟件時,就發現了其安裝向導中的一個Bug,下面,...
黃金鐵
微軟的數據庫開發工具Visual FoxPro 6.0在國內應用很廣,但也不可避免地存在某些Bug。近日,本人在使用VFP 6.0簡體中文版開發軟件時,就發現了其安裝向導中的一個Bug,下面,筆者將具體介紹該問題及筆者的解決方案。
在制作應用程序發行版軟件時,筆者利用安裝向導將應用軟件中的字形文件安裝到Windows目錄。按其提示正常操作后,得到的應用程序發行版在執行安裝過程中出錯,出錯的窗口標題為“安裝程序出錯824”,錯誤提示為“對象16,您的安裝程序文件可能已被破壞。請從您原來運行它的位置重新啟動安裝程序”。此錯誤代碼在幫助文件中找不到。根據其提示的內容,筆者檢查了所有的源文件和生成文件,發現均正確無誤。將該字形文件安裝到應用程序目錄和Windows系統目錄亦正常。最后鎖定了故障的原因,即安裝向導在把文件安裝到Windows目錄時出現錯誤。
經過較長時間的分析和思索,筆者最后在生成的安裝程序中的兩個參數文件setup.stf及setup.inf中找到了蛛絲馬跡。在setup.stf中,該字形文件對應行有一個字段內容為“應用程序 - Windows,-0b20z4avw”;而在setup.inf中,文件的內容按節分開,節名用方括號包括。該字形文件單獨在一節,節名為[Application - Windows]。筆者試著用debug反匯編程序把該節名修改為[應用程序 - Windows],以便與setup.stf對應,空出的三個字節用空格補齊。結果生成的安裝程序順利地將該字形文件安裝到了Windows目錄下,至此擺平了該Bug。
回頭來看,此Bug產生的原因是微軟Visual FoxPro 6.0漢化不完全造成的,在英文版的Visual FoxPro 6.0中不應該有此問題。為了以后應用的方便,本人專門做了一段FoxPro程序自動做替換節名的工作。程序如下:
&&&&解決Visual Viusal FoxPro 6.0簡體中文版安裝向導 Bug 的程序
f1=locfile('setup.inf','inf:inf')
if len(f1)>0
setupinf=fopen(f1,2)
else
wait windows "沒找到 setup.inf 文件!"
return
endif
if setupinf<0
wait windows "打開 setup.inf 文件錯誤!"
return
endif
s1="[Application - Windows]"
s2="[應用程序 - Windows] "
&&&&s2字符串尾部有3個空格,以使其長度與s1長度相等
flag1=.f.
do while .not.feof(setupinf)
s3=fgets(setupinf)
if s3=s1
fseek(setupinf,0-len(s1)-2,1)
fputs(setupinf,s2)
flag1=.t.
exit
endif
enddo
fclose(setupinf)
if flag1
wait windows "替換成功!"
else
wait windows "沒找到 "+s1+" 節!"
endif
return
以上是筆者的解決方案,希望能對大家的開發有所幫助。