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() º¯ Êý£¬ Äú ¿É ÒÔ È· ¶¨ ÊÇ ·ñ ÓÐ ×ã ¹» µÄ ×Ê Ô´ Óà À´ ¼Ì Ðø Õý ³£ ´ò ¿ª¡£ Õâ Щ º¯ Êý Ò² ¿É ÒÔ ÔÚ Ó¦ Óà µÄ ÈÎ ºÎ µØ ·½ µ÷ Óà ÒÔ ÖØ Öà ÏÞ ÖÆ »ò ¼ì ²é ×Ê Ô´¡£

微电脑世界 国际电子报 展览


Öйú¼ÆËã»úÊÀ½ç³ö°æ·þÎñ¹«Ë¾°æÈ¨ËùÓÐ