单位有一foxpro2.6下的财务系统,近来换了新电脑,财务系统在XP下不能运行

anetman 2004-10-27 03:41:53
单位有一foxpro2.6下的财务系统,近来换了新电脑,财务系统在XP下不能运行,提示除0错误,在win98下提示有错误,点忽略后可以运行财务系统,也可以记账、打账簿,但是,在计算机上装两套系统,换来换去太麻烦,win98又太不可靠,不知哪位大侠有办法解决?我的信箱waytoroma@163.com
...全文
140 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sbw 2004-10-31
  • 打赏
  • 举报
回复
这篇文章是我发表在动感游标上的,你可以按照文章中的方法修改看看行不行。

FOXPROW2.X在高配置机器上不能运行释疑
[ 作者: 转贴自: 点击数:93 更新时间:2004-3-23 文章录入:sbw ]

这篇文章是我以前在CSDN上回答的别人的帖子,问这种问题大约有4,5次,由此可见此问题也有一定的普遍性。所以从新整理了一下,然后拿到这儿来发表。如果你已经完全与FPW2.X断绝了关系,那么就可以略过此章。

各位见笑了。

在很久以前FPW2.X,是在WINDOWS3.x下跑的,机器也没那么快,所以不会有问题,但到了现在,机器的CPU都论G了,所以很难想象在如此配置的机器上跑WINDOWS3.X,基本上都是安装的WINDOWS2000后XP,所以给人的错觉是FPW2.X在2000或XP下运行不正常(98下也有问题)。其实导致FPW2.X不正常的是CPU的主频(大约在300-400M之间,没测过),在对FPW2.X反编译后其中一段代码像是测试CPU的速度,如下:

:0001.F1A4 268A0F mov cl , es:[bx] ——此处随时间变化,取值

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.F1BA(C)
|
:0001.F1A7 263A0F cmp cl , es:[bx]
:0001.F1AA 7510 jne F1BC ——不等则跳转
:0001.F1AC 2D0100 sub ax, 0001 ——计数
:0001.F1AF 83DA00 sbb dx, 0000 ——整理,被除数在AX,DX中是一个32位的数
:0001.F1B2 8AEC mov ch, ah
:0001.F1B4 0AE8 or ch, al
:0001.F1B6 0AEE or ch, dh
:0001.F1B8 0AEA or ch, dl
:0001.F1BA 75EB jne F1A7 ——反复去比较

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0001.F1AA(C)
|
:0001.F1BC 4F dec di
:0001.F1BD 75E5 jne F1A4
:0001.F1BF F7DA neg dx
:0001.F1C1 F7D8 neg ax
:0001.F1C3 83DA00 sbb dx, 0000
:0001.F1C6 B96E00 mov cx, 006E ——给除数赋值
:0001.F1C9 F7F1 div cx ——做除法,关键就在此!因为你的CPU过快,AX,DX的值过大,而DX值过小,得数无法放在AX中,所以出现除法溢出。我有奇怪的想法,要是CPU快到一定程度,就不会出现这种情况了。
:0001.F1CB 40 inc ax
:0001.F1CC A3B628 mov word ptr [28B6], ax
:0001.F1CF 1F pop ds
:0001.F1D0 07 pop es
:0001.F1D1 58 pop ax
:0001.F1D2 5B pop bx
:0001.F1D3 59 pop cx
:0001.F1D4 5A pop dx
:0001.F1D5 5F pop di
:0001.F1D6 C3 ret


知道问题所在修该的方法也很简单,用UE32等能以二进制方式打开文件并编辑的软件编辑FPW2.x的主文件,找F7 F1 40 改 90 90 40即可。

所以FPW2.X跟系统没有多大关系,跟处理器的快慢有关系。如果你用P4-2G跑WINDOWS3.2+FPW2.X也会出现这样的情况(没试过)。不过在WINDOW98下出现错误提示框,你可以选择关闭或忽略,如果选忽略FPW2.X照样运行,没有任何影响。XP下只有一个按钮,按下就只能退出了。


darji 2004-10-30
  • 打赏
  • 举报
回复
主频率超过400hz,好像已经不支持foxpro2.6下编译出来的程序的了,把程序在xp下用vfp重新编译成exe文件就可以了。要不然网上下载个GMSTART.EXE才能正常运作。
十豆三 2004-10-28
  • 打赏
  • 举报
回复
1、右击你的可执行文件,创建一个快捷方式,此快捷方式应该为MS-DOS程序的快捷方式,运行此快捷方式试一试!!!

2、试一试在XP的的CMD(COMMAND)方式下能不能运行!!!
fj_jiangqi 2004-10-27
  • 打赏
  • 举报
回复
是dos的还是windows的,实在不行可以尝试在xp上装一套虚拟机。
-----------------------------
我流落在凄凉的世界里-孤苦伶仃
我过着动荡无助的生活-四处漂泊
我在死亡线上苦苦挣扎-度日如年
-----------------------------
陪我好吗?
xclzteb 2004-10-27
  • 打赏
  • 举报
回复
在XP上配置一下虚拟DOS环境应该能行。
相关推荐
发帖
VFP

2574

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2004-10-27 03:41
社区公告
暂无公告