主题:用QB写的程序太大,编译不能完成,请教中
喜欢QB
[专家分:200] 发布于 2005-11-26 01:30:00
我用QB写了一个分析程序,运行正常,编译不能完成,“QB”提示内存溢出。
我删掉几个子程序后,编译成功。
请教各位高手:难道用QB不能写出一些很大的应用程序吗???
回复列表 (共9个回复)
沙发
喜欢QB [专家分:200] 发布于 2005-11-26 09:15:00
是否,应该将一部分程序单独编译,在主程序中调用它,具体怎样做,请赐教
板凳
喜欢QB [专家分:200] 发布于 2005-11-26 09:30:00
能否在一个程序中,用“CHAIN”语句链接其它的程序,这个语句具体应该如何用,请教各位高手
3 楼
moz [专家分:37620] 发布于 2005-11-26 09:50:00
1. 过大的程序,应该把一些独立的功能或函数分离成子程序和函数,
最好把这些SUB和FUNCTION分离出来另外保存,用QB编译成快速库(LIB,QLB文件)
2. 用 CHAIN 可以运行另一个BAS文件,称为转移控制台,
具体使用格式看HELP里的EXAMPLE,适用于需要交换变量不多的程序转换,
当共享参数或变量较少时,可以使用common共享一定的内存变量区。
当需求较大时,建议使用文件交换变量值。
3. 如果需要调用的是EXE文件时,最好使用 RUN 命令。
4 楼
喜欢QB [专家分:200] 发布于 2005-11-26 10:40:00
我用“CHAIN”语句已经能够在一个程序中链接另外一个程序了,但是又出现一个问题:将程序编译成功后,运行这个编译后的“EXE"文件时,链接另一个程序时,QB提示出错。
按“moz"老大的指教,应该用”RUN"命令,该如何做呢?请指教
5 楼
qb45 [专家分:2880] 发布于 2005-11-26 10:44:00
原程序有多大?
什么结构?
6 楼
QB71 [专家分:1300] 发布于 2005-11-26 10:59:00
理论上不大于640K的都没问题
把你的源程序分成小于64K的若干文件
在QB中一个文件当成主文件
其他的用LOAD方法装入,然后编译
还不编译成功,那么请把程序发到我E-mail:untill_wwy@163.com
一定帮你解决.
如果怕原程序给我偷看了,那就没法帮你了
7 楼
moz [专家分:37620] 发布于 2005-11-26 11:23:00
LOAD应该不太可行,
我试过100K的程序分开Load还是不够内存编译
而且我当时用的共享结构变量太多,
能独立分离的模块不多,
把独立的函数和子程序分出去还是溢出。
RUN “程序名”
和 Chain 格式相同,
只是程序名是EXE文件,
RUN 也可以调用BAS文件的,
具体怎样区别,自己摸索一下。
8 楼
喜欢QB [专家分:200] 发布于 2005-11-26 11:42:00
谢谢“moz" "qb45" ""qb71"你们的指教,我已经能够用”RUN“语句完成对”EXE“文件的链接了,这样大程序在编译时出现内存溢出的问题,已经能够解决了,再次谢谢你们,周末愉快!!!
9 楼
qb45 [专家分:2880] 发布于 2005-11-26 15:41:00
我以前用qbasic做的硬盘工具有5个模块(mouse.bas-鼠标功能模块,ide.bas读写硬盘模块,txttools.bas文本模式下功能模块,int.bas中断调用功能模块。还有一个主模块fanedit.bas)
最后组装编译以后共120kb,很顺利呢!
建议你采用模块化的方式编程,省心不少!
我来回复