主题:QB开发的视窗程序竟然有这样的BUG
chaio58shen
[专家分:0] 发布于 2008-04-08 06:41:00
QB开发的视窗程序竟然有这样的BUG
在虎拟机中测试刚写的程序
在DOS下虚拟盘运行开发出来的MEILI.exe
命令按回车没动
想了好久
我把硬盘重新格式成FAT格式竟然成功执行
谁能帮我解决如此的BUG
NTF格式运行不了QB开发的视窗程序
FAT格式却可以运行QB开发的视窗程序
回复列表 (共49个回复)
21 楼
moz [专家分:37620] 发布于 2008-04-10 12:17:00
忘了补充一点,
我昨晚试过第二项DOS启动,没成功.
22 楼
chaio58shen [专家分:0] 发布于 2008-04-10 17:10:00
不可理喻
不懂就说不懂
明明的MSDOS竟然说FREEDOS
里面不是有个DOS98吗
你可以直接挂在软驱镜像里启动也一样的
23 楼
chaio58shen [专家分:0] 发布于 2008-04-10 17:13:00
就算是FREEDOS也是MSDOS的扩展本
连高楼起于地基你都不知道
应当扣MOZ 50000分
我扣你分不给你加分扣MOZ 50000分把专家两个字去掉
24 楼
chaio58shen [专家分:0] 发布于 2008-04-10 17:15:00
问题根本不上DOS版本的问题
问题是NTFS不能运行
FAT32能运行
看清楚
不是我没讲清楚
25 楼
chaio58shen [专家分:0] 发布于 2008-04-10 17:54:00
[quote]忘了补充一点,
我昨晚试过第二项DOS启动,没成功.[/quote]
就是有一个不成功
挂FAT32的VHD成功
挂NTFS的VHD不成功
26 楼
moz [专家分:37620] 发布于 2008-04-10 18:52:00
天啊,我真系服得你交关喽.
27 楼
moz [专家分:37620] 发布于 2008-04-10 18:54:00
[quote]QB开发的视窗程序竟然有这样的BUG[/quote]
我现在才明白这句话是什么意思,
她居然说的是因那场官司而出现的Windows的那近亿行的QBasic源代码,狂倒.老天,饶了我吧.
28 楼
moz [专家分:37620] 发布于 2008-04-10 22:55:00
闭上眼睛都能猜得到这是个大头女孩子了 (绝对没有歧视的意思)
OK,言归正传.
既然她说的并不是指QB的问题,
而是在说Windows操作系统 (视窗程序这个名字挺别致的,估计能晕倒不少俊男的)
其实并不是真的是Windows的问题,
其实她只是用虚拟机来启动深山红叶的一个DOS启动盘而出来的问题,
唉,老天.
是的,这张盘启动的的确是MS-DOS,其实是Windows98核心.
是深山红叶的启动盘,但去掉了多余的部份,启动DOS工具盘
( 拜托,我又不是你肚子里的蛔虫,你不说我咋知道这回事啊? )
我们来看看这个启动盘的Autoexec.bat的文件内容:
[quote]@ECHO OFF
set EXPAND=YES
SET DIRCMD=/O:N
cls
SET RAMDRIVE=X
XMSDSK 9600 X: /y
SET TEMP=%RAMDRIVE%:\
SET TMP=%RAMDRIVE%:\
lh mouse.com >nul
copy A:\pkunzip.exe X:\
copy A:\huanyin.ZIP X:\
X:
x:\pkunzip.exe -d -o huanyin.ZIP
restart.exe
EXIT
[/quote]
说明一下:huanyin.ZIP解压出来四个文件:
QBWIN.FNT
UNICODE.FNT
RESTART.EXE
RESTART.COM
从自动执行的批处理文件中可以看到,解压后执行EXE文件
这是一个由QBWIN编译的一个窗体程序,只有一个按钮,点击后(估计是用Shell)执行Restart.com来实现重启系统.
楼主遇到的问题是:
当挂载FAT32.VHD作为虚拟系统的硬盘的时候,程序是正常执行的.
而挂载Huanyin.VHD作为虚拟硬盘的时候,程序就死在Restart.exe的执行上了,QBwin窗体没有执行.
至于Restart.exe的源代码,我不清楚,粗略猜疑是用QBwin弄了一个按钮,用Shell执行一个.Com
如果说这个程序出错,我一点都不会觉得奇怪.因为DOS下的图形模式的确让我不能信服.
特别是DOS图形模式开发的"编译"程序编译出来的程序.
但在楼主的这个现象最让我费解的是:
.ISO是用来启动的,
两个.VHD是用来挂载的, (具体是不是如楼主所言一个FAT一个NTFS我等一下再来考证)
但其实由此至终,DOS是从ISO启动中虚拟出来的系统盘A:,
X:分明是内存虚拟出来的虚拟盘,
挂载的.VHD究竟在哪里,有什么内容,有什么作用,什么时候用上了,我都不知道.
也就是说,这两个.VHD到底用上了没有,我持怀疑态度.
但偏偏楼主所说的挂载不同.VHD导致EXE的成功与失败这个现象是存在的.
我又用另一个虚拟系统挂载这两个.VHD看了下
FAT32.VHD 的确是FAT32格式,38.5M
另一个VHD 也的确是NTFS格式 68.1M
内里都是没有文件的.
29 楼
chaio58shen [专家分:0] 发布于 2008-04-12 05:59:00
问题分析出来了
可是怎么解决如此的问题
挂NTFS.VHD会在执行EXE前停止
挂FAT32.VHD却能执行EXE文件呢
30 楼
chaio58shen [专家分:0] 发布于 2008-04-12 06:01:00
这个世界没有大头女孩和帅哥的区别
学习对每个人都公平的
智慧是每个人都拥有的
我只是仿造我的程序给出的同样环境的同样形式的一个样例
因为我不喜欢开源嘛
但是我却喜欢别人给我开源
我来回复