PowerBuilder ¿ª ·¢
ϵ ÁР̸ (13)
×Ê Ô´ ¹Ü
Àí
»ª Ìì Р¼¼
Êõ ¿ª ·¢ ¹« ˾ ÕÅ
½¡ ×Ë
( ±± ¾© ÓÑ Òê ±ö
¹Ý30538 ÊÒ100873Email:sjhzyz@public.bta.net.cn)
ÄÚ ´æ © ¶´
ÎÒ ÃÇ
ÔÚ ÉÏ ÆÚ µÄ¡¶
Ô¤ ×° Èë ¶Ô Ïó¡·
Ò» ÎÄ ÖÐ Ìá µ½
ÁË ¹Ø ÓÚ ÄÚ ´æ
© ¶´£¨MemoryLeak£© µÄ
ÎÊ Ìâ¡£ ÄÚ ´æ
© ¶´ ÊÇ ³Ì Ðò
Ô± ºÍ Óà »§ ¶¼
ºÜ ¹Ø ÐÄ µÄ ÎÊ Ìâ¡£
Ò» ¸ö ¶Ô Ïó ±»
×° Èë ²¢ ÇÒ ·Ö
Åä ÁË ÄÚ ´æ£¬
¶ø ÔÚ ¶Ô Ïó ±»
¹Ø ±Õ È´ û ÓÐ
ÊÍ ·Å ·Ö Åä µÄ
ÄÚ ´æ£¬ Õâ ʱ
Ò» ¸ö ÄÚ ´æ ©
¶´ ¾Í ²ú Éú ÁË¡£
ÔÚ ¿ª ·¢ ¹¤ ¾ß
ÖÐ Ò² »á ÓÐ ÄÚ
´æ © ¶´£¬ Õâ
ÊÇ ÎÒ ÃÇ ÎÞ ·¨
¿Ø ÖÆ µÄ£¬ µ«
ÊÇ ÎÒ ÃÇ ±Ø Ðë
×¢ Òâ ÎÒ ÃÇ ×Ô
¼º µÄ ´ú Âë Ëù
Ôì ³É µÄ ÄÚ ´æ
© ¶´¡£
×î ÓÐ ¿É
ÄÜ Ôì ³É ÄÚ ´æ
© ¶´ µÄ ÊÇ Ê¹
ÓÃCREATE Óï ¾ä ´´ ½¨
Ò» ¸ö ¶Ô Ïó ºó
û ÓÐ ¶Ô Ó¦ µÄDESTROY
Óï ¾ä Ïû ³ý¡£
ÎÞ ÂÛ ºÎ ʱ£¬
Äú ÓÃCREATE º¯ Êý ´´
½¨ ÁË Ò» ¸ö ¶Ô
Ïó£¬ Äú ¾Í ±Ø
Ðë ¸º Ôð ÔÚ ¸Ã
¶Ô Ïó Ö´ ÐÐ Íê ³É
Ö® ºó ÊÍ ·Å ·Ö
Åä µÄ ÄÚ ´æ¡£
Àý£º ÎÒ
´´ ½¨ ÁË ÎÒ ×Ô
¼º µÄ Ò» ¸ötransaction ¶Ô
Ïó£º
TransactionMy_Transaction
My_transaction=CREATETransaction
µ± ÎÒ ÓÃ
Íê Õâ ¸ö ¶Ô Ïó
ºó£¬ ÎÒ Ó¦ ¸Ã
Çå ³ý ¸Ã ¶Ô Ïó£º
DESTROYMyTransaction
£¨ ×¢£ºSQLCA
ÊÇ ÓÉ Äú µÄ Ó¦
Óà ×Ô ¶¯ ´´ ½¨
ͬ ʱ Ò² ×Ô ¶¯
¹Ø ±Õ¡££©
ÄÚ ´æ ©
¶´ µÄ ³ö ÏÖ ¾ ³£
ÊÇ Óë ¿ª ·¢ Õß
ʹ Óà ÁË ·Ç ¿É
ÊÓ »¯ Óà »§ ¶Ô
Ïó ÓÐ ¹Ø¡£ Òò
Ϊ Õâ ÖÖ ¶Ô Ïó
Ö» ÄÜ ÓÃCREATE Óï ¾ä
´´ ½¨ Ëü µÄ Ò»
¸ö ʵ Àý£¬ Òò
´Ë Èç ²» ¶Ô Æä
ʹ ÓÃDESTROY Óï ¾ä Ïû
³ý£¬ Ôò ±Ø È»
µ¼ ÖÂ ´í Îó¡£
Áí Íâ Ò» ¸ö ÓÐ
¹Ø µÄ ÊÇ ÓÃOpenUserObject
»òOpenUserObjectWithParm º¯ Êý ´´
½¨ µÄ ¶¯ ̬ ÓÃ
»§ ¶Ô Ïó£¬ Õâ
Щ ¶Ô Ïó ͬ Ñù
Òª Çó Äú ÔÚ ½á
Êø ʹ Óà Ëü ÃÇ
ʱ Óà Ïà Ó¦ µÄCloseUserObject
º¯ Êý¡£
ÎÒ ÃÇ
Öª µÀ£¬PowerBuilder ÄÜ ¹»
×Ô ¶¯ Çå ³ý ·Å
ÔÚ Ò» ¸ö ´° ¿Ú
ÖÐ µÄ ³£ ¹æ ¶Ô Ïó£¬
µ« Ëü Ϊ ʲ ô
²» ÄÜ ÔÚ Ó¦ ÓÃ
½á Êø ʱ ×Ô ¶¯
Çå ³ý ÓÃ »§ ×Ô
¼º ´´ ½¨ µÄ ¶Ô
Ïó ÄØ £¿ Òò ΪPowerBuilder
½ö ÄÜ Çå ³ý ¿Ø
¼þ ÁÐ ±í ÖÐ µÄ
¶Ô Ïó£¬ ¶ø ÇÒ
Ö» ÓÐ Ò» ¸ö ¶Ô
Ïó£¨ Èç ´° ¿Ú£©
¼° Æä ±í Ãæ µÄ
ÄÇ Ð© ¶Ô Ïó ²Å »á
ÁÐ ÔÚ ¿Ø ¼þ ÁÐ
±í µ± ÖУ¨ °ü À¨
²» ¿É ¼û µÄ ¶Ô
Ï󣩡£ ¶ø ¶¯ ̬
µÄ Óà »§ ¶Ô Ïó
ºÍ ·Ç ¿É ÊÓ »¯
¶Ô Ïó£¬ ÓëPowerBuilder È«
¾Ö ¶Ô Ïó µÄ ʵ
Àý£¨transactions¡¢error¡¢message
µÈ µÈ£© Ò» Ñù£¬
ÊÇ ÔÚ ¶Ô Ïó µÄ
¿Ø ÖÆ ÁÐ ±í ÒÑ
¾ ´´ ½¨ ºó ¼Ó
µ½ ¶Ô Ïó ÉÏ µÄ¡£
¹Ø ±Õ ¸¸ ¶Ô Ïó
ʱ£¬ ϵ ͳ ²¢ ²»
Öª µÀ Òª Çå ³ý
Õâ Щ ¶¯ ̬ ¼Ó
Èë µÄ ¶Ô Ïó¡£
Èç ¹û Äú û ÓÐ
ÊÖ ¹¤ Ïû ³ý Ëü
ÃÇ£¬ Ëü ÃÇ ½«
Ò» Ö± ±£ ³Ö ´ò
¿ª ×´ ̬£¬ ²¢ ³£
פ ÔÚ ÄÚ ´æ ÖУ¬
Ö± µ½ ʹ Óà ¹¤
¾ß À´ Çå ³ý£¬
»ò Õß ¹Ø ±ÕWindows
ϵ ͳ¡£ ʹ ÓÃ
ÏóWindows3.1ResourceKit ÖÐ Ìá ¹©
µÄ ÄÚ ´æ ×Ê Ô´
¼à ¿Ø Æ÷ Õâ Ñù
µÄ ¹¤ ¾ß£¬ ÄÜ Ê¹
Äú ÔÚ ²â ÊÔ ¹ý
³Ì ÖÐ ¼ì ²é ×Ê
Ô´ ÒÔ È· ¶¨ ×Ê
Ô´ °´ ÕÕ Ô¤ Ïë
µÄ ÄÇ Ñù ±» ÊÍ
·Å¡£
ÄÚ ´æ ¹Ü Àí
ÔÚWindows3.x ƽ
̨ ÉÏ£¬ ¿ª ·¢
ÈË Ô± ±à Òë ʱ
»á Óö µ½ Õâ Ñù
µÄ ÎÊ Ì⣺ »ú
Æ÷ Àï ÓÐ32M ÄÚ ´æ£¬
¶ø ÇÒ Ö» ÓÐ Á½
¸ö Ó¦ ÓÃ ÔÚ ÔË
ÐУ¬ ¿É ÊÇPowerBuilder È´
×Ü ÊÇ Ìá ʾ ÄÚ
´æ ²» ×㣨OutofMemory£©¡£
¶ø Óà »§ ÔÚ Ê¹
Óà ij Ó¦ Óà Èí
¼þ ʱ£¬ Ò² »á
ͬ Ñù ³ö ÏÖ ÄÚ
´æ ²» ×ã µÄ ÎÊ
Ì⣬ ÓÚ ÊÇ ÓÃ
»§ Ö» µÃ ¹Ø ±Õ
Æä Ëü µÄ Ó¦ Óã¬
Ö± µ½ ·¢ ÏÖ ¹Ø
±Õ ÁË Ä³ Ò» ³Ì
Ðò ÊÍ ·Å ÁË ×ã
¹» µÄ ÄÚ ´æ ¿Õ
¼ä ¿É ¹©PowerBuilder ÔË
ÐÐ Æð À´ Ϊ Ö¹¡£
ÓÚ ÊÇ Óà »§ ¿ª
ʼ ±§ Ô¹ ¿ª ·¢
Õߣ¬ ¶ø ¿ª ·¢
Õß ¿ª ʼ ±§ Ô¹PowerBuilder¡£
Æä ʵ ÔÚ
¶à Êý Çé ¿ö Ï£¬
Ëû ÃÇ ¶¼ ²» Ó¦
¸Ã ÊÜ Ô𠱸£¬
ÎÊ Ìâ µÄ ¸ù Ô´
³ö ÔÚWindows ±¾ Éí¡£
ÎÒ ÃÇ Öª µÀ£¬
´Ó ÑÏ ¸ñ Òâ Òå
ÉÏ ½²£¬Windows ²¢ ²»
ÊÇ Ò» ¸ö ²Ù ×÷
ϵ ͳ£¬ Ëü Ö» ÊÇ
Ò» ¸öDOS Ó¦ Óà ³Ì
Ðò£¬ Ëü ÈÔ È»
Òª Çó ¹Ì ¶¨ µÄ
³Ì Ðò ¿Õ ¼ä¡£
Õâ Щ ¿Õ ¼ä ·Ö
²¼ ÔÚ1M ÒÔ Ï µÄ
ÉÏ Î» ÄÚ ´æ ÖС£
Èç ¹û Äú ʹ ÓÃ
´ø ²Î Êý/C µÄDOS Ãü
ÁîMEM£¬ Äú ½« »á
¿´ µ½ Àà ËÆ ÒÔ
Ï µÄ ÏÔ Ê¾¡£
Modulesusingmemorybelow1MB:
Name Total =Conventional +UpperMemory
-------- ---------- --------- --------
MSDOS 17,533(17K) 17,533(17K) 0(0K)
HIMEM 1,120(1K) 1,120(1K) 0(0K)
EMM386 4,144(4K) 4,144(4K) 0(0K)
POWER 80(0K) 80(0K) 0(0K)
COMMAND 3,888(4K) 3,888(4K) 0(0K)
win386 44,816(44K) 2,384(2K) 42,432(41K)
NAVTSR 7,984(8K) 7,984(8K) 0(0K)
MOUSE 25,328(25K) 272(0K) 25,056(24K)
SHARE 26,368(26K) 26,368(26K) 0(0K)
DOSKEY 4,144(4K) 4,144(4K) 0(0K)
WIN 1,760(2K) 1,760(2K) 0(0K)
COMMAND 4,048(4K) 4,048(4K) 0(0K)
POWER 4,672(5K) 0(0K) 4,672(5K)
SMARTDRV 29,024(28K) 0(0K) 29,024(28K)
Free 581,312(568K) 581,312(568K) 0(0K)
MemorySummary:
TypeofMemory Total =Used +Free
----------- ---------- ---------- ----------
Conventional 655,360 74,048 581,312
Upper 101,184 101,184 0
Reserved 393,216 393,216 0
Extended(XMS) 19,821,760 18,773,184 1,048,576
---------- ---------- ---------- ----------
Totalmemory 20,971,520 19,341,632 1,629,888
Totalunder1MB 756,544 175,232 581,312
Largestexecutableprogramsize581,296(568K)
Largestfreeuppermemoryblock0(0K)
MS-DOSisresidentinthehighmemoryarea.
¾¡ ¹Ü ÔÚDOS
ÄÚ ´æ ÏÞ ÖÆ640K ºÍ1M
ÉÏ Î» ÄÚ ´æ ¿é
Ö® ¼ä ÓÐ360K£¨ Ô¼384,000
×Ö ½Ú£© µÄ ¿É
Óà ÄÚ ´æ£¬ µ«
ÔÚ ÏÔ Ê¾ ÖУ¬¡°
ÉÏ Î»¡± ÄÚ ´æ
ºÍ¡° ±£ Áô¡±
ÄÚ ´æ Ö® ¼ä È´
ÓÐ ½ü500K ¿É Óᣡ°
±£ Áô¡± ÄÚ ´æ
Ò» °ã ÓÃ À´ ×°
ÔØ Íø Âç Èí ¼þ
ºÍ Æä Ëü µÄ Çý
¶¯£¬ ÔÚ"Win386" Ò»
ÐÐ Ò² ÏÔ Ê¾ »¹ ÓÐ42K
¿É Ó㬠Õâ ÊÇ
±» ÄÇ Ð© Ðè Òª
¹Ì ¶¨ µØ Ö· ¿Õ
¼ä µÄ Ó¦ Óà ʹ
Óà µÄ¡£ µ±Windows ´´
½¨ Ò» Ïî РÈÎ
Îñ ʱ£¬Windows µÄ ×°
Èë Ä£ ¿é Ϊ ¸Ã
ÈÎ Îñ ´´ ½¨ Ò»
¸ö ÈÎ Îñ Êý ¾Ý
¿â(TDB)¡£ Õâ ¸ö ÈÎ
Îñ Êý ¾Ý ¿â ±Ø
Ðë ±» ×° Èë µ½1MB
ÒÔ Ï ÄÚ ´æ£¬
¶ø ÇÒ ×î С ³¤
¶È Ϊ200 ×Ö ½Ú¡£
Ô Òò ÊÇ ÈÎ Îñ
Êý ¾Ý ¿â Ïî µÄ
µÚ ¶þ ²¿ ·Ö ÊÇ
Ò» ¸ö ³Ì Ðò ¶Î
ǰ ׺£¨PSP£©£¬ Õâ
ÊÇWindows1.0¡¢2.0 ºÍ3.0 ʵ
Ä£ ʽ ´´ Ôì µÄ£¬
ʹ Óà Ëü µÄ Ψ
Ò» Ô Òò ÊÇ ¸ü
¼Ó ÈÝ Ò× µØ µ÷
¶È Ó¦ ÓÃ ÄÚ ÖÃ
µÄMS-DOS À© Õ¹ Æ÷¡£
ÔÚ ±£ »¤ Ä£ ʽ
µÄWindows ²¢ ²» ÊÇ ±Ø
Ðè µÄ£¬ ²» ¹ý ÔÚWindows3.1
±£ »¤ Ä£ ʽ ÖÐ
ÈÔ ±£ Áô ÁË Õâ
Ò» ½á ¹¹¡£
ÎÞ ÂÛ Äú
µÄ »ú Æ÷ ÊÇ ¶à
ÉÙ Õ× ÄÚ ´æ£¬
Äú µÄ ³Ì Ðò ±Ø
Ðë È¥ Õù È¡ Õâ
¶Î ¿É Óà ¿Õ ¼ä£¬
û ÓРʲ ô ·½
·¨ ¿É ÒÔ À© ³ä
Ëü¡£ Õâ Ò» ÏÞ
ÖÆ£¬ ÒÔ ¼° ÏÂ Ãæ
½« Ìá µ½ µÄ64KGDI ºÍUSER
¶Ñ£¬ ÊÇWindows3.X ÖÐ ×î
ÊÜ ÏÞ ÖÆ µÄ ´ú
Âë¡£
Ëù ÓÐ µÄWindows
³Ì Ðò »ò ¶à »ò
ÉÙ Ðè Òª Ò» Щ
Õâ ÖÖ1M ÒÔ Ï µÄ
ÄÚ ´æ ²Å ÄÜ Õý
³£ ¹¤ ×÷¡£ Ò»
°ã µÄ ³Ì Ðò ³ý
·Ö Åä ÁË Ò» Щ
¹Ì ¶¨ µÄ ÄÚ ´æ
Í⣬ ÓРЩ ³Ì Ðò
»¹ Òª Áí Íâ Éê
Çë Ò» Щ ÄÚ ´æ
¿Õ ¼ä£¬ ¶ø ÓÐ
Щ ÓÐ ´í Îó µÄ
³Ì Ðò »á ºÜ ¿ì
µØ Ïû ºÄ µô Õâ
¶Î ÓÐ ÏÞ µÄ ÄÚ
´æ ¿Õ ¼ä£¬ Õâ
¾Í »á ³ö ÏÖ Ç°
Ãæ ÎÒ ÃÇ Ëù Ìá
µ½ µÄ ÄÚ ´æ ²»
×ã ÎÊ Ìâ¡£ ²»
¹ýPowerBuilder ²¢ ²» ÈÃ
ÎÒ ÃÇ ×Ô ¼º È¥
·Ö Åä Õâ Щ Ï¡
ÓÐ µÄ ×Ê Ô´£¬ Õâ
Ò² ʹ ÎÒ ÃÇ ÎÞ
·¨ ½â ¾ö Õâ ÖÖ
Ô Òò Òý Æð µÄ
ÄÚ ´æ ²» ×ã ÎÊ
Ìâ¡£
C ³Ì Ðò
Ô± »á ºÜ Êì Ϥ
ÓÃGMEM_FIXED »ò ÊÇ ÓÃGlobalDosAlloc
º¯ Êý ·Ö Åä ÄÚ
´æ¡£ Õâ Á½ ¸ö
º¯ Êý ¶¼ ½« ÊÔ
ͼ ·Ö Åä µÍ ÓÚ1M
µÄ ÄÚ ´æ¡£HEAPWALK.EXE£¨
°ü º¬ ÔÚWindowsSDK »òC++ ±à
Òë Æ÷ ÖУ© Õâ
Ñù µÄ Ó¦ Óà ³Ì
Ðò ÄÜ ²é ¿´1M ÒÔ
Ï ·Ö Åä µÄ ÄÚ
´æ ¿é£¬ ´Ó ¶ø
¸ü ×¼ È· µØ È·
¶¨ ÄÄ Ð© Ó¦ ÓÃ
³Ô µô ÁË Äú ±¦
¹ó µÄ ÄÚ ´æ ×Ê
Ô´¡£ ¿É ÒÔ ÓÃMS-DOS
ÖÐ µÄLoadHigh ¹¦ ÄÜ£¬
½« Ò» Щ פ Áô
³Ì Ðò ×° Èë ¸ß
¶Ë ¶ø ÊÍ ·Å ³£
¹æ ÄÚ ´æ£¬ µ«
Õâ Ñù ×ö Ò² ¼õ
ÉÙ ÁË ¿É Óà µÄ
ÉÏ Î» ÄÚ ´æ£¬
×î ºÃ °ì ·¨ Ö»
ÄÜ ÊÇ ÕÛ ÖÔ¡£
Æä ËüWindows ×Ê Ô´
»¹ ÓÐ Á½
ÖÖWindows ÖÐ ³£ ³£ Òý
Æð ÎÊ Ìâ µÄ ×Ê
Ô´£¬ Ëü ÃÇ ÊÇUSER
ºÍGDI ×Ê Ô´¡£ Õâ
Щ ×Ê Ô´ ¾Í Ïó
ÉÏ Ãæ Ãè Êö µÄ
ÈÎ Îñ Êý ¾Ý ¿â
Çø Ò» Ñù£¬ Ò²
ÊÇ ±»Windows ¶ø ²» ÊÇ
±» »ú Æ÷ ÄÚ ´æ
ÏÞ ÖÆ µÄ£¬ Ëü ÃÇ
¶¼ ÓÐ ²» ÄÜ ³¬ ¹ý64K
µÄ ÏÞ ÖÆ¡£ Õâ
Òâ ζ ×Å ÓРʱ
²¢ ²» ÊÇ »ú Æ÷
ÄÚ ´æ ×Ü Êý Òý
Æð ÁË ÄÚ ´æ ²»
×ã¡£
GDI ×Ê Ô´
¾Í ÊÇ Äú µÄ Ó¦
Óà ÖÐ Óà µ½ µÄ
×Ê Ô´ ¾ä ±ú ºÍ
Éè ±¸ ÉÏ Ï ÎÄ¡£
ÿ ¸ö λ ͼ¡¢
ͼ ±ê¡¢ ¹â ±ê¡¢
Êý ¾Ý ´° ¿Ú¡¢
Óà »§ ¶Ô Ïó ºÍ
´° ¿Ú ¶¼ Ðè Òª
Õâ ÖÖ ×Ê Ô´¡£
´ó µÄ ×Ô ¶¨ Òå
¹¤ ¾ß Ìõ ¶ÔGDI ×Ê
Ô´ µÄ Ðè Çó ×î
´ó£¬ µ« Ëü Ò»
°ã ²» »á Òý Æð
Âé ·³£» ´° ¿Ú¡¢
Êý ¾Ý ´° ¿Ú ºÍ
°´ Å¥ ½« ×î ÖÕ
Óà ¹âGDI ×Ê Ô´¡£GDI
×Ê Ô´ ¼¸ ºõ ÎÞ
Ò» Àý Íâ µØ ×î
ÏÈ ¼õ ÉÙ µ½20% ÒÔ
Ï¡£
USER ×Ê Ô´
Ò² ÊÇ Ã¿ ¸ö ¶Ô
Ïó ¶¼ Ðè Òª µÄ
×Ê Ô´¡£ Èç ¹û
Ò» ¸ö ÓÃ »§ ¶Ô
Ïó ÓÉ Ò» ×é ¶Ô
Ïó ×é ³É£¬ Æä
ÖРÿ ¸ö ¶Ô Ïó
¶¼ Ðè ÒªUSER ×Ê Ô´£¨
¾ä ±ú¡¢ ÈÎ Îñ
¹Ü Àí µÈ µÈ£©¡£
Õâ ÖÖ Çé ¿ö ÏÂ
µ÷ Óà ¶¯ ̬ ´ò
¿ª »ò ¹Ø ±Õ µÄ
¶Ô Ïó ÏÔ È» ÊÇ
ÓÐ Òæ µÄ¡£ Òò
Ϊ Êý ¾Ý ´° ¿Ú
ÊÇ µ¥ Ò» ¶Ô Ïó£¬
Ëù ÒÔ Ê¹ Óà Êý
¾Ý ´° ¿Ú ×÷ Ϊ
¶Ô Ïó ¼¯ ºÏ Ò²
ÊÇ ¸ø Õâ Щ ×Ê
Ô´ ¼õ ÉÙ ¸º µ£
µÄ Ò» ¸ö ºÃ ·½
·¨£¬
ͨ ¹ý ÉÏ
Êö ½é ÉÜ£¬ ÎÒ
ÃÇ ¿É ÒÔ ¿´ µ½Windows3.x
ÖÐ ¿É Óà µÄ ÄÚ
´æ Ô¶ ±È Äú ×î
¿ª ʼ Ïë Ïó µÄ
Òª ÉÙ¡£Windows95 Ò² Ðí
½« »á »º ½â Õâ
Ò» ÎÊ Ì⣬ µ«
ÈÔ Ðè ¹Û ²ì¡£
¶¯ ̬ ¼à ¿Ø ×Ê
Ô´ Àý ³Ì
×î ºó£¬
ÎÒ ½« ½é ÉÜ Ò»
¸ö ÄÜ °ï Äú ÔÚ ÔË
ÐРʱ ¸ú ×Ù Äú
µÄ ϵ ͳ ×Ê Ô´
µÄ Àý ³Ì¡£ ÎÒ
ÃÇ Ôø Ìá µ½ ¹ý£¬
ʹ ÓÃPowerBuilder£¬ ÎÒ
ÃÇ ²» ÄÜ ¿Ø ÖÆ
ϵ ͳ ¶Ô ×Ê Ô´
µÄ ʹ Ó㬠µ«
ÊÇ ÎÒ ÃÇ ¿É ÒÔ
Óà һ Щ ¼ò µ¥
µÄSDK º¯ Êý µ÷ À´
¼à ¿Ø ×Ê Ô´ µÄ
ʹ ÓᣠÎÒ ÃÇ
½« ʹ Óà һ ¸ö
·Ç ¿É ÊÓ »¯ ¶Ô
Ïó ×ö ΪSDK µÄ ½ç
Ãæ ¶Ô Ïó¡£ µ±
È» Äú Ò² ¿É ÒÔ
½«SDK º¯ Êý Éù Ã÷
Ϊ È« ¾Ö Íâ ²¿
º¯ Êý ²¢ ͨ ¹ý
È« ¾Ö º¯ Êý À´
·Ã ÎÊ Ëü ÃÇ¡£
²½ Öè
Ò»£º
´´ ½¨API
·Ã ÎÊ ¶Ô ÏóNVO_API_ACCESS.£»
´´ ½¨ Ò»
¸ö Óà ÓÚ Éù Ã÷
µÄ Ó¦ Óà Ê ¼þ£¬
²¢ ´ÓCONSTRUCTOR ÊÂ ¼þ
ÖÐ ´¥ ·¢ ¸Ã ÊÂ
¼þ¡£
´´ ½¨ Ò»
¸ö Óà ÓÚ ³õ ʼ
»¯ µÄ Óà »§ ÊÂ
¼þNVO_UE_SETUP£¬ ²¢ ´ÓCONSTRUSTOR
ÖÐ ´¥ ·¢¡£
²½ Öè
¶þ£º
Éù Ã÷
ÒÔ Ï µÄ ¾Ö ²¿
Íâ ²¿ º¯ Êý£º
FUNCTION uint GetFreeSystemResources(uint
SysResource) LIBRARY 'user.dll'
²½ Öè
Èý£º
Éù Ã÷
ÒÔ Ï µÄ ±ä Á¿
ʵ Àý£º
Private:
/* ×î С µÄ ×Ê Ô´ ÏÞ ÖÆ*/
Long il_usermem_limit
Long il_gdimem_limit
Long il_memory_limit
Long il_standard_threshhold
/* ×Ê Ô´ ·Ã ÎÊ ³£ Á¿*/
Integer sdkUser=0,sdkGDI=1,sdkResources=2
²½ Öè
ËÄ£º
´´ ½¨ ÒÔ
Ï µÄ Óà »§ ¶Ô
Ïó º¯ Êý£º
//*************************************************
// º¯ Êý: NVOF_Check_Resources
// ¹¦ ÄÜ: To check system resources
// ²Î Êý:( ÎÞ)
// ·µ »Ø Öµ:integer
// 1- ³É ¹¦,<0- ʧ °Ü£¨ ¾ø ¶Ô Êý Öµ Ϊ ×Ê Ô´ ·Ã ÎÊ ³£ Á¿£©¡£
//*************************************************
if GetFreeSystemResources(sdkUser) < il_usermem_limit then
return(sdkUser*-1)
end if
if GetFreeSystemResources(sdkGDI) < il_gdimem_limit then
return(sdkgdi*-1)
end if
if GetFreeSystemResources(sdkResources) < il_memory_limit then
return(sdkMemory*-1)
end if
Return1
²½ Öè
Î壺
ÎÒ ÃÇ Ðè
Òª ´´ ½¨ Ò» ¸ö
º¯ Êý Óà ÓÚ ½¨
Á¢ ÎÒ ÃÇ µÄ ×î
С ×Ê Ô´ ÏÞ ÖÆ¡£
´´ ½¨ º¯ ÊýNVOF_Set_Resource_Limit¡£
Êä Èë ²Î Êý ÊÇ
Õû ÐÍ ±ä Á¿ai_ResourceType£¬
Ëü Ö¸ ´ú ¿É ÓÃ
×Ê Ô´ ³£ Á¿ ÖÖ
Àà(GDI,User »ò Memory) ºÍai_threshhold£¬
Ö¸ ´ú Õâ ÖÖ ×Ê
Ô´ Àà ÐÍ µÄ ÁÙ
½ç ÏÞ ÖÆ Öµ¡£
//***********************************************
// º¯ Êý: NVOF_Set_Resource_Limit
// ×÷ ÓÃ: Set resource threshhold limits
// ²Î Êý: integer ai_ResourceType
// ( Ö¸ ´ú ¿É Óà ×Ê Ô´ ³£ Á¿ ÖÖ Àà)
// integer ai_Threshhold
// ( Õâ ÖÖ ×Ê Ô´ Àà ÐÍ µÄ ÁÙ ½ç ÏÞ ÖÆ Öµ)
// ·µ »Ø Öµ: integer
// 1- ³É ¹¦,-1- ʧ °Ü.
//
//***********************************************
/* Éè Öà ×Ê Ô´ ¼« ÏÞ*/
Choose Case ai_ResourceType
Case sdkGDI
il_gdimem_limit=ai_Threshhold
Case sdkUser
il_usermem_limit=ai_Threshhold
Case sdkSystem
il_Memory_Limit=ai_Threshhold
End Choose
Return1
²½ Öè
Áù£º
ÔÚ Éù Ã÷
Ê ¼þ ÖУ¬ ½«il_Default_Threshold
Éè Ϊ ÉÔ ´ó Ò»
Щ µÄ Êý Öµ¡£ Àý
È磬30% ¿É ÄÜ ÊÇ
Äú ÄÜ ½Ó ÊÜ µÄ
×î µÍ µÄ ²» ÓÃ
¾¯ ¸æ Óà »§ µÄ
×Ê Ô´ Á¿£¬ ÄÇ
ô ÎÒ ÃÇ ÔÚ Éù
Ã÷ Ê ¼þ ÖРд
Ï Èç Ï ´ú Â룺
il_Default_Threshold=30
ÔÚ ³õ ʼ
»¯ Ê ¼þ ÖУ¬ ½¨
Á¢ ȱ Ê¡ º¯ Êý
ÒÔ Éè ¶¨ ÁÙ ½ç
ÏÞ ÖÆ£¬ º¯ Êý ¿É
ÒÔ ÔÚ ÔË ÐРʱ
ÖØ Öà Õâ Щ ÏÞ
ÖÆ¡£ ¿ª ·¢ ¹ý
³Ì ÖÐ ½« ÏÞ ÖÆ
Éè µÄ ¸ß Ò» µã£¬
Õâ Ñù È· ±£ ÔÚ
×î ºó ²ú Æ· ÔË
ÐРʱ ×Ê Ô´ ²»
»á ³ö ÎÊ Ìâ¡£
NVOF_Set_Resource_Limit(sdkUser,il_Default_Threshold)
NVOF_Set_Resource_Limit(sdkGDI,il_Default_Threshold)
NVOF_Set_Resource_Limit(sdkMemory,il_Default_Threshold)
С ½á
½¨ Á¢ ÉÏ
Êö ¶Ô Ïó µÄ Ò»
¸ö ʵ Àý£¬ ÔÚ
´ò ¿ª Ò» ¸ö ´°
¿Ú¡¢ ¶¯ ̬ ´ò
¿ª Ò» ¸ö Óà »§
¶Ô Ïó »ò ´´ ½¨
Ò» ¸ö ¶Ô Ïó Ö®
ǰ£¬ ͨ ¹ý µ÷
Óà ¶Ô Ïó µÄNVOF_Check_Resources()
º¯ Êý£¬ Äú ¿É
ÒÔ È· ¶¨ ÊÇ ·ñ
ÓÐ ×ã ¹» µÄ ×Ê
Ô´ Óà À´ ¼Ì Ðø
Õý ³£ ´ò ¿ª¡£
Õâ Щ º¯ Êý Ò²
¿É ÒÔ ÔÚ Ó¦ ÓÃ
µÄ ÈÎ ºÎ µØ ·½
µ÷ ÓÃ ÒÔ ÖØ ÖÃ
ÏÞ ÖÆ »ò ¼ì ²é
×Ê Ô´¡£
Öйú¼ÆËã»úÊÀ½ç³ö°æ·þÎñ¹«Ë¾°æÈ¨ËùÓÐ
|