回 帖 发 新 帖 刷新版面

主题:用QB写的程序太大,编译不能完成,请教中

我用QB写了一个分析程序,运行正常,编译不能完成,“QB”提示内存溢出。
我删掉几个子程序后,编译成功。
请教各位高手:难道用QB不能写出一些很大的应用程序吗???

回复列表 (共9个回复)

沙发

是否,应该将一部分程序单独编译,在主程序中调用它,具体怎样做,请赐教

板凳

能否在一个程序中,用“CHAIN”语句链接其它的程序,这个语句具体应该如何用,请教各位高手

3 楼

1. 过大的程序,应该把一些独立的功能或函数分离成子程序和函数,
  最好把这些SUB和FUNCTION分离出来另外保存,用QB编译成快速库(LIB,QLB文件)

2.  用 CHAIN 可以运行另一个BAS文件,称为转移控制台,
    具体使用格式看HELP里的EXAMPLE,适用于需要交换变量不多的程序转换,
    当共享参数或变量较少时,可以使用common共享一定的内存变量区。
    当需求较大时,建议使用文件交换变量值。

3.  如果需要调用的是EXE文件时,最好使用 RUN 命令。

4 楼

我用“CHAIN”语句已经能够在一个程序中链接另外一个程序了,但是又出现一个问题:将程序编译成功后,运行这个编译后的“EXE"文件时,链接另一个程序时,QB提示出错。
按“moz"老大的指教,应该用”RUN"命令,该如何做呢?请指教

5 楼

原程序有多大?
什么结构?

6 楼

理论上不大于640K的都没问题
把你的源程序分成小于64K的若干文件
在QB中一个文件当成主文件
其他的用LOAD方法装入,然后编译
还不编译成功,那么请把程序发到我E-mail:untill_wwy@163.com
一定帮你解决.
如果怕原程序给我偷看了,那就没法帮你了

7 楼

LOAD应该不太可行,
我试过100K的程序分开Load还是不够内存编译
而且我当时用的共享结构变量太多,
能独立分离的模块不多,
把独立的函数和子程序分出去还是溢出。

RUN “程序名”
和 Chain 格式相同,
只是程序名是EXE文件,
RUN 也可以调用BAS文件的,
具体怎样区别,自己摸索一下。

8 楼

谢谢“moz" "qb45" ""qb71"你们的指教,我已经能够用”RUN“语句完成对”EXE“文件的链接了,这样大程序在编译时出现内存溢出的问题,已经能够解决了,再次谢谢你们,周末愉快!!!

9 楼

我以前用qbasic做的硬盘工具有5个模块(mouse.bas-鼠标功能模块,ide.bas读写硬盘模块,txttools.bas文本模式下功能模块,int.bas中断调用功能模块。还有一个主模块fanedit.bas)
最后组装编译以后共120kb,很顺利呢!
建议你采用模块化的方式编程,省心不少!

我来回复

您尚未登录,请登录后再回复。点此登录或注册