為什麼有的程序不能運行於win98?提示內存不足(即使你的內存是1G)
我總結了一下,得出原因:(注:原因不具權威性)
原因:win98內部只分配了64K的空間用於存放handle,由於我們的程序大量的使用了.DFM文件,而每個DFM文件是有自己的Handle的(每個DFM也包含了太多的控件,大多數控件也有自己的Handle),這也就導致了win98分配的64K空間不夠用。因此報告內存不足(其實是可用Handle存入空間不足,而並非真的是內存不足)。
引申:Delphi程序在啟動時,會把所有的資源裝載到內存當中(.dfm其實就是資源文件)。而不管你是否已經引用。也就是說,程序中所有會被引用的form在程序啟動時就已經被裝載到內存當中,占用了大量的Handle。
解決方法:1、使用動態表單(即自己畫DFM);
2、采用分包技術。