Главная страница | назад





Article #15662: Possible causes for insufficient memory

 Question and Answer Database

FAQ662C.txt   Possible causes for insufficient memory
Category   :IDE
Platform    :Windows 3.1
Product    :   BC++4.5x   TC++Dos3.0   TC++Win4.5

Question:


Sometimes, when bcw is running, I cannot run any other 
program (I use Windows 3.11). It does not depend what size it is.
The following message appears:
Insufficient memory to run this application. 
I quit one or more Windows applications and then try again.
As I close only one little program, such like notepad, I can 
run an other one. I can run also a bigger one than notepad.

When the message appears, I still have 49% of User Resources, 
42% of GDI Resources and still enough of RAM (my computer has 16
MB RAM and 30 MB of virtual memory). Our program has 31 DLLs and 
the totally size of the program is 8.35 MB.

Why does this message appear? What are the possible reasons? How 
can I find the bug? What can I do?

Answer:

There are several ways that you could have run out of things 
even 'though there is plenty of raw memory. Run out of any of 
these things and you will not be able to start another task. 

Each application has a database entry in the memory below the 
physical 1 Meg address. If the entries eat too far into that 
area you will not be able to start another program. 

Windows 3.1 only provides heap for about 200 windows classes. 
When that fills up, you are stalled.

Windows has a limited heap for GDI resources, bitmaps, cursors, 
icons, and the like. Again, when it's full, you're stalled.

Only 5 device contexts can be active. Once that happens, nothing 
works until one is freed.

There surely are a lot more items than these in Win 3.1 that can 
keep you from running and I'm sure I don't know them all, but 
these seem to be the most common ones. 

7/2/98 10:32:32 AM
 

Last Modified: 01-SEP-99