作者:醇情咖啡_799 | 来源:互联网 | 2023-05-17 11:55
我在windows2000下用tc2.0编写的工控程序,到工控机dos6.22下运行总出现“outofmemory”后来我发现把windows2000里的tc2.0目录包括程序全
我在windows2000下用tc2.0编写的工控程序,到工控机dos6.22下运行总出现“out of memory...”
后来我发现把windows2000里的tc2.0目录包括程序全拷到工控机上就好了,不过在工控机上一修改程序,再运行又会出现“out of memory...”
(程序大约3000行,内存16M,dos下的himem也装载了)
请各位指教!
12 个解决方案
这是古老的64k内存限制,tc2.0本身的问题,好象没有解决办法。
程序有没有问题,会不会是memory leak>?
会不会是你编译是没有注意用大内存方式编译啊,或是你的tc装的不够完整,
同志们那,我本人觉得可能是"内存泄漏"但如何泄漏的不得而知?
但是为什么在win2000的tc2.0下编译运行都好好的???
将win2000德tc2.0目录和源文件拷的工控机的dos6.22下编译运行也好好的!但是一动源文件,再编译就会出现"out of momery.." 愁人那!
我想这不是你的TC问题就是你的程序的问题,有可能是你的这个程序泄露内存了,但这种可能性很小,必进他不是那种3DMAX程序,应该不会占那么大的内存的
如果一动源文件就出这个问题,我估计是你从2k那边拷贝过来的东西包括了*.obj文件,这样在这边可能只做了连接而没有编译。
如果是这个问题的话有以下解决方法:
一、修改dos的内存设置,不仅仅要加载himem,还要加载emm386.exe,因为tc2.0只可以使用ems,还只能使用64k,不会使用xms
二、使用bc3.1编译,bc3.1兼容tc2.0,性能好多了,内存管理也好多了
三、使用tc2.0的命令行工具tcc来编译,不过这个方法要设置环境变量或者加命令行参数,可能不是这么方便
四、终极方法:把你的文件拆成若干个小文件,这样tc编译起来就方便多了,而且在工程上管理也好很多
多谢各位支着,尤其感谢ckc(火)!正如火同志所料我从2K那边拷贝过来的东西包括了*.obj文件,这样在这边可能只做了连接而没有编译。高,实在是高!!!
我只用了第一个方法“不仅仅要加载himem,还要加载emm386.exe“问题就解决了!不胜感激
以后我看得用bc3.1,tc2.0连鼠标都不支持,别说其他方面了。
使用tc2.0的命令行工具tcc来编译,我以前没用过,看样子有时间的好好钻研一下子
把文件拆成若干个小文件,这个方法也极好。可我习惯了一个文件,在集成环境下随该随调,觉着挺方便!
对了
同样的程序在98下一般不会出现这个问题
我有过这样的经历