ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
µÚÈýµç×ÓÊé ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

CÓïÑÔʵÀý½Ì³Ì(PDF¸ñʽ)-µÚ75²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡


UseResource£¨£©³ÉÔ±º¯Êýͨ¹ý´ÓÐźÅÁ¿»ñµÃÒ»¸ö¼ÆÊýÆ÷À´·ÃÎÊ×ÊÔ´£¬¡¡

È»ºóµ±º¯ÊýÍ˳öʱÊÍ·ÅÐźÅÁ¿¡£¡¡¡¡



#include¡¡¡¨stdafx¡£h¡¨¡¡¡¡



#include¡¡¡¨SomeResource¡£h¡¨¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡658¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

CSomeResource£º£ºCSomeResource£¨£©¡¡¡¡



£û¡¡¡¡



semaphore¡¡=¡¡new¡¡CSemaphore£¨2£»¡¡2£©£»¡¡¡¡



£ý¡¡¡¡



CSomeResource£º£º~CSomeResource£¨£©¡¡¡¡



£û¡¡¡¡



delete¡¡semaphore£»¡¡¡¡



£ý¡¡¡¡



void¡¡CSomeResource£º£ºUseResource£¨£©¡¡¡¡



£û¡¡¡¡



CSingleLock¡¡singleLock£¨semaphore£©£»¡¡¡¡



singleLock¡£Lock£¨£©£»¡¡¡¡



Sleep£¨5000£©£»¡¡¡¡



£ý¡¡¡¡



°´ÕÕÏÂÃæµÄ²½ÖèÐÞ¸ÄÔ­À´µÄThread³ÌÐòÒÔ²âÊÔCSomeResource¶ÔÏ󡣡¡¡¡



1¡£¡¡É¾³ýCCountArrayÀàµÄÍ·ÎļþºÍÖ´ÐÐÎļþ¡£¡¡¡¡



2¡£¡¡´´½¨ÐµÄSomeResource¡£hºÍSomeResource¡£cpp¡£¡¡¡¡



3¡£¡¡ÔÚÐÂÌí¼ÓµÄÁ½¸öÎļþÖмÓÈë´úÂë¡£¡¡¡¡



4¡£¡¡ÓÃ#include¡¡¡¨SomeResource¡£h¡¨Óï¾ä»»µô¡¨CountArray2¡£h¡¨¡£¡¡¡¡



5¡£¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓÃCSomeResource¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡someResource£»Ìæ»»CCountArray2¡¡¡¡

countArray¡£¡¡¡¡



6¡£¡¡ÓÃÏÂÃæÈý¸öº¯ÊýÌæ»»WriteThreadProc£¨£©ºÍReadThreadProc£¨£©¡£¡¡¡¡



UINT¡¡ThreadProc1£¨LPVOID¡¡param£©¡¡¡¡



£û¡¡¡¡



someResource¡£UseResource£¨£©£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡659¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

£º£ºMessageBox£¨£¨HWND£©param£»¡¨Thread¡¡1¡¡had¡¡access¡£¡¨£»¡¡¡¡¡¡



¡¨Thread¡¡1¡¨£»¡¡MB_OK£©£»¡¡¡¡



return¡¡0£»¡¡¡¡



£ý¡¡¡¡



UINT¡¡ThreadProc2£¨LPVOID¡¡param£©¡¡¡¡



£û¡¡¡¡



someResource¡£UseResource£¨£©£»¡¡¡¡



£º£ºMessageBox£¨£¨HWND£©param£»¡¨Thread¡¡2¡¡had¡¡access¡£¡¨£»¡¡¡¡



¡¨Thread¡¡2¡¨£»¡¡MB_OK£©£»¡¡¡¡



return¡¡0£»¡¡¡¡



£ý¡¡¡¡



UINT¡¡ThreadProc3£¨LPVOID¡¡param£©¡¡¡¡



£û¡¡¡¡



someResource¡£UseResource£¨£©£»¡¡¡¡



£º£ºMessageBox£¨£¨HWND£©param£»¡¡¡¡



¡¨Thread¡¡3¡¡had¡¡access¡£¡¨£»¡¡¡¨Thread¡¡3¡¨£»¡¡MB_OK£©£»¡¡¡¡



return¡¡0£»¡¡¡¡



£ý¡¡¡¡



7¡£¡¡Ê¹ÓÃÏÂÃæµÄÓï¾äÌæ»»OnStartthread£¨£©ÖÐËùÓеĴúÂë¡£¡¡¡¡



void¡¡CThreadView£º£ºOnStartthread£¨£©¡¡¡¡¡¡



£û¡¡¡¡



//¡¡TODO£º¡¡Add¡¡your¡¡mand¡¡handler¡¡code¡¡here¡¡¡¡



HWND¡¡hWnd¡¡=¡¡GetSafeHwnd£¨£©£»¡¡¡¡



AfxBeginThread£¨ThreadProc1£»¡¡hWnd£©£»¡¡¡¡



AfxBeginThread£¨ThreadProc2£»¡¡hWnd£©£»¡¡¡¡



AfxBeginThread£¨ThreadProc3£»¡¡hWnd£©£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡660¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

£ý¡¡¡¡



ÏÖÔÚ±àÒë²¢ÔËÐгÌÐò¡£µ±Ö÷´°¿Ú³öÏÖºó£¬Ñ¡Ôñ¡¡¡°Ï̡߳±Ö÷²Ëµ¥Öеġ¡

¡¡¡°Æô¶¯Ï̡߳±²Ëµ¥Ñ¡Ïî¡£¹ý5ÃëÖֺ󣬵¯³öÁ½¸öÏûÏ¢¿ò¸æËßÄãÏß³Ì1ºÍ¡¡

Ïß³Ì2ÓµÓзÃÎÊ×ÊÔ´µÄȨÏÞ¡£ÔÙ¹ý5ÃëÖÓ£¬µÚÈý¸öÏûÏ¢¿òµ¯³ö¸æËßÄãÏß¡¡

³Ì3Ò²ÓµÓÐÁË·ÃÎÊ×ÊÔ´µÄȨÏÞ¡£Ïß³Ì3Ö®ËùÒÔ5ÃëÖÓÒÔºó²Å³öÏÖ£¬Èçͼ¡¡

12¡£5Ëùʾ¡£ÒòΪÏß³Ì1ºÍÏß³Ì2Ê×ÏÈÕ¼ÓÐÁË×ÊÔ´µÄ¿ØÖÆȨ¡£ÐźÅÁ¿±»Éè¡¡

ÖóÉͬһʱ¿ÌÖ»ÄÜÓÐÁ½¸öÏ̷߳ÃÎÊ×ÊÔ´£¬ËùÒÔµÚÈý¸öÏ̱߳ØÐëµÈ´ýÖ±¡¡

µ½Ç°Á½¸öÏß³ÌÊͷŶÔÐźÅÁ¿µÄËùÓÐȨ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Í¼12¡£¡¡5¡¡Ïß³Ì3ÓµÓзÃÎÊȨÏÞ¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡661¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚÊ®ÈýÕ¡¡¶¯Ì¬Á´½Ó¿â¡¡¡¡



ÔÚWindowsÓ¦ÓóÌÐòÖÐʹÓö¯Ì¬Á´½Ó¿âÓкܶàµÄºÃ´¦¡£×îÖ÷ÒªµÄÒ»µã¡¡

˵ÊÇËü¿ÉÒÔʹµÃ¶à¸öÓ¦ÓóÌÐò¹²ÏíÒ»¶Î´úÂ룬´Ó¶ø¿ÉÒÔ´ó·ù¶ÈµÄ½µµÍ¡¡

Ó¦ÓóÌÐòµÄ×ÊÔ´¿ªÏú£¬Í¬Ê±ºÜËõСÁËÓ¦ÓóÌÐòµÄ×îÖÕÖ´ÐдúÂëµÄ´ó¡¡

С¡£´ËÍ⣬ͨ¹ýʹÓö¯Ì¬Á´½Ó¿â£¬ÎÒÃÇ¿ÉÒÔ°ÑһЩ³£¹æµÄÀý³Ì¶ÀÁ¢³ö¡¡

À´£¬ÓÐЧµÄ±ÜÃâÁ˲»±ØÒªµÄÖظ´¿ª·¢£¬²¢ÇÒ£¬ÓÉÓÚÓ¦ÓóÌÐòʹÓÃÁ˶¯¡¡

̬Á´½ÓµÄ·½Ê½£¬»¹¿ÉÒÔÔÚ²»ÐèÖØиÄдÉõÖÁ±àÒëÓ¦ÓóÌÐòµÄ»ù´¡Éϸü¡¡

ÐÂÓ¦ÓóÌÐòµÄijЩ×é¼þ¡£¡¡¡¡



±¾Õ½éÉÜVisual¡¡C£«£«¡¡5¡£0ÖеĶ¯Ì¬Á´½Ó¿âµÄ´´½¨ºÍʹÓá£ÕâЩÄÚÈÝ°ü¡¡

À¨¡¡¡¡



¡¡¡¡l¡¡ÎªÊ²Ã´ÒªÊ¹ÓÃDLL¡¡¡¡



¡¡¡¡l¡¡²»Í¬µÄDLLÀàÐÍÖ®¼äµÄÑ¡Ôñ¡¡¡¡



¡¡¡¡l¡¡ÔÚ³ÌÐòÖд´½¨ºÍʹÓÃDLL¡¡¡¡



¡¡¡¡l¡¡Ê¹ÓÃDLLÀ©Õ¹MFC¡¡¡¡



±¾ÕµÄÖصãÔÚ½²ÊöWin32¡¡¡¡¡¡DLLºÍ»ùÓÚMFCµÄ³£¹æDLL£¬¶ÔÓÚMFCÀ©Õ¹DLL¡¡

½ö¸øÁËÒ»¸öºÜ¼òµ¥µÄÀý×Ó£¬¸üÉîÈëµÄ×ÊÁÏÇë²ÎÔÄVisual¡¡¡¡C£«£«µÄÁª»úÎÄ¡¡

µµ¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚÒ»½Ú¡¡¸ÅÊö¡¡¡¡



¶¯Ì¬Á´½Ó¿â¡¡£¨DLL£¬Dynamic¡­Link¡¡¡¡¡¡Library£©Ò²ÊÇÒ»ÖÖ¿ÉÖ´ÐÐÎļþ£¬¡¡

Ö»²»¹ýËü²»ÄÜÏóÆÕͨµÄEXEÎļþÄÇÑù¿ÉÒÔÖ±½ÓÔËÐУ¬¶øÊÇÓÃÀ´ÎªÆäËü¡¡

¿ÉÖ´ÐÐÎļþ¡¡£¨°üÀ¨EXEÎļþºÍÆäËüDLL£©Ìṩ¹²Ïíº¯Êý¿â¡£Ê¹ÓÃDLLµÄ¡¡

Ó¦ÓóÌÐò¿ÉÒÔµ÷ÓÃDLLÖеĵ¼³öº¯Êý¡¡£¨imported¡¡¡¡function£©£¬²»¹ýÔÚ¡¡

Ó¦ÓóÌÐò±¾ÉíµÄÖ´ÐдúÂëÖв¢²»°üº¬ÕâЩº¯ÊýµÄÖ´ÐдúÂ룬ËüÃǾ­¹ý¡¡

±àÒëºÍÁ´½ÓÖ®ºó£¬¶ÀÁ¢µÄ±£´æÔÚDLLÖС£ÕâÊÇÒ»Öֺ͹ýÈ¥³£Óõľ²Ì¬¡¡

Á´½Ó²»Í¬µÄ·½Ê½£¬Ê¹Óþ²Ì¬Á´½Ó¿â¡¡£¨static¡¡¡¡link¡¡¡¡library£©µÄÓ¦Óá¡

³ÌÐò´Óº¯Êý¿âµÃµ½ËùÒýÓõĺ¯ÊýµÄÖ´ÐдúÂ룬Ȼºó°ÑÖ´ÐдúÂë·Å½ø¡¡×Ô¡¡

ÉíµÄÖ´ÐÐÎļþÖУ¬ÕâÑù£¬Ó¦ÓóÌÐòÔÚÔËÐÐʱ¾Í¿ÉÒÔ²»ÔÙÐèÒª¾²Ì¬º¯Êý¡¡

¿âµÄÖ§³Ö¡£¶øʹÓÃDLLµÄÓ¦ÓóÌÐòÖ»°üÀ¨ÁËÓÃÓÚ´ÓDLLÖж¨Î»ËùÒýÓõġ¡

º¯ÊýµÄÐÅÏ¢£¬¶øûÓк¯Êý¾ßÌåʵÏÖ£¬ÒªµÈµ½³ÌÐòÔËÐÐʱ²Å´ÓDLLÖлñ¡¡

µÃº¯ÊýµÄʵÏÖ´úÂë¡£ÏÔÈ»£¬Ê¹ÓÃÁËDLLµÄÓ¦ÓóÌÐòÔÚÔËÐÐʱ±ØÐëÒªÓС¡

ÏàÓ¦µÄDLLµÄÖ§³Ö¡£¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡662¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

DLLÔÚWindows±à³ÌÖеõ½Á˹㷺µÄÓ¦Óá£WindowsÓ¦ÓóÌÐòµÄ»ù´¡£º¡¡

Windows¡¡¡¡¡¡APIº¯ÊýÖеÄÏ൱²¿·Ö¾ÍÊÇÓÉÒ»×éDLLËùÌṩµÄ£¬ÕâЩDLL´Ó¡¡

°²×°WindowsÆð¾Í´æÔÚÓÚϵͳÖÐÁË¡£¾¡¹ÜÔÚÇ°ÃæµÄ¼¸ÕÂÖÐÎÒÃÇûÓÐÃ÷¡¡

È·µÄÌáµ½£¬µ«ÊÂʵÉÏÎÒÃÇÔç¾ÍÔÚʹÓÃDLL½øÐбà³ÌÁË£¬Ö»²»¹ý£¬Ëùʹ¡¡

ÓõÄDLL¶¼ÊÇÏֳɵģ¬²¢ÇÒËùÓе÷ÓÃDLLµÄ²Ù×÷¶¼ÓÉVisual¡¡¡¡C£«£«µÄ±àÒë¡¡

ºÍÁ´½Ó³ÌÐòÌæÎÒÃÇÍê³ÉÁË¡£¡¡¡¡



±¾Õ½«ÏêϸµÄ½éÉÜÈçºÎ´´½¨×Ô¼ºµÄDLLºÍÈçºÎʹÓÃ×Ô¼º´´½¨µÄDLL½øÐС¡

±à³Ì¡£¡¡¡¡



ΪʲôҪʹÓÃDLLÄØ£¿Õ⵱ȻÊÇÒòΪÓ봫ͳµÄ¾²Ì¬Á´¿âÏà±È£¬Ê¹ÓÃDLL¡¡

ÓÐןü¶àµÄÓÅÊÆ£º¡¡¡¡



¡¡l¡¡Ê¹ÓÃDLLÌṩÁËÒ»ÖÖ¹²ÏíÊý¾ÝºÍ´úÂëµÄ·½±ã;¾¶¡£²¢ÇÒ£¬ÓÉÓÚ¶à¸ö¡¡

¡¡¡¡Ó¦ÓóÌÐò¿ÉÒÔ¹²Ïíͬһ¸öDLLÖеĺ¯Êý£¬Òò´Ë£¬Ê¹ÓÃDLL¿ÉÒÔÏÔÖø¡¡

¡¡¡¡¡¡µÄ½ÚÊ¡´ÅÅ̿ռ䡣ÓÈÆä¶ÔÓÚWindowsÓ¦ÓóÌÐò£¬ÓкܶàµÄ²Ù×÷¶¼ÊÇ¡¡

¡¡¡¡¡¡¡°±ê×¼»¯¡±Á˵ģ¬Èç¹ûʹÓô«Í³µÄ¾²Ì¬Á´½Ó£¬Ã¿Ò»¸öÐèÒªÍê³ÉÕâ¡¡

¡¡¡¡Ð©²Ù×÷µÄÓ¦ÓóÌÐò¶¼±ØÐëÔÚ×Ô¼ºµÄÖ´ÐÐÎļþÖаüÀ¨ÏàͬµÄÖ´Ðдú¡¡

¡¡¡¡Â룬Õâ²»µ«Ê¹µ¥¸öµÄÓ¦ÓóÌÐò±äµÃ¸ü³¤£¬Ò²ÀË·ÑÁË´ÅÅ̿ռ䡣¡¡¡¡



¡¡l¡¡ÓÉÓÚÏàͬµÄÔ­Òò£¬¶à¸öÓ¦ÓóÌÐò»¹¿ÉÒÔͬʱ¹²ÏíDLLÔÚÄÚ´æÖеÄͬ¡¡

¡¡¡¡Ò»·Ý¿½±´£¬ÕâÑù¾ÍÓÐЧµÄ½ÚÊ¡ÁËÓ¦ÓóÌÐòËùÕ¼ÓõÄÄÚ´æ×ÊÔ´£¬¼õ¡¡

¡¡¡¡ÉÙÁËƵ·±µÄÄÚ´æ½»»»£¬´Ó¶øÌá¸ßÁËÓ¦ÓóÌÐòµÄÖ´ÐÐЧÂÊ¡£¡¡¡¡



¡¡l¡¡ÓÉÓÚDLLÊǶÀÁ¢ÓÚ¿ÉÖ´ÐÐÎļþµÄ£¬Òò´Ë£¬Èç¹ûÐèÒªÏòDLLÖÐÔö¼ÓС¡

¡¡¡¡¡¡µÄº¯Êý»òÊÇÔöÇ¿ÏÖÓк¯ÊýµÄ¹¦ÄÜ£¬Ö»ÒªÔ­Óк¯ÊýµÄ²ÎÊýºÍ·µ»ØÖµ¡¡

¡¡¡¡µÈÊôÐÔ²»±ä£¬ÄÇô£¬ËùÓÐʹÓøÃDLLµÄÔ­ÓÐÓ¦ÓóÌÐò¶¼¿ÉÒÔÔÚÉý¼¶¡¡

¡¡¡¡ºóµÄDLLµÄÖ§³ÖÏÂÔËÐУ¬¶ø²»ÐèÒªÖØбàÒë¡£Õâ¾Í¼«´óµÄ·½±ãÁËÓ¦¡¡

¡¡¡¡ÓóÌÐòµÄÉý¼¶ºÍÊÛºóÖ§³Ö¡£¡¡¡¡



¡¡l¡¡DLL³ýÁË°üÀ¨º¯ÊýµÄÖ´ÐдúÂëÒÔÍ⣬»¹¿ÉÒÔÖ»°üÀ¨Èçͼ±ê¡¢Î»Í¼¡¢¡¡

¡¡¡¡×Ö·û´®ºÍ¶Ô»°¿òÖ®ÀàµÄ×ÊÔ´£¬Òò´Ë¿ÉÒÔ°ÑÓ¦ÓóÌÐòËùʹÓõÄ×ÊÔ´¡¡

¡¡¡¡¶ÀÁ¢³öÀ´×ö³ÉDLL¡£¶ÔÓÚһЩ³£ÓõÄ×ÊÔ´£¬°ÑËüÃÇ×öµ½DLLÖк󣬡¡

¡¡¡¡¾Í¿ÉΪ¶à¸öÓ¦ÓóÌÐòËù¹²Ïí¡£¡¡¡¡



¡¡l¡¡±ãÓÚ½¨Á¢¶àÓïÑÔµÄÓ¦ÓóÌÐò¡£ÎÒÃÇ¿ÉÒ԰ѶàÓïÑÔÓ¦ÓóÌÐòÖÐËùʹ¡¡

¡¡¡¡ÓõÄÓëÓïÑÔÏà¹ØµÄº¯Êý×öµ½DLLÖУ¬Ö»Òª²»Í¬ÓïÑÔµÄÓ¦ÓóÌÐòËùµ÷¡¡

¡¡¡¡Óõĺ¯Êý¶¼¾ßÓÐÏàͬµÄ½Ó¿Ú£¬ÕâÑù¾Í¿ÉÒÔͨ¹ý¼òµ¥µØ¸ü»»DLLÀ´Êµ¡¡

¡¡¡¡ÏÖ¶àÓïÑÔÖ§³Ö¡£¡¡¡¡



È»¶ø£¬Ê¹ÓÃDLLÒ²ÓÐÆä²»×ãÖ®´¦¡£×îµäÐ͵ľÍÊÇÓ¦ÓóÌÐòÔÚÔËÐÐʱ±Ø¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡663¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÐëÒªÓÐÏàÓ¦µÄDLLµÄÖ§³Ö¡£ÁíÍ⣬ʹÓÃDLLÒ²Ôö´óÁ˳ÌÐòÔËÐеĿªÏú£¬¡¡

ºÃÔÚÕâÖÖ¶îÍâµÄ¿ªÏú¶ÔÓÚ´ó¶àÊýÓ¦ÓóÌÐòµÄÓ°Ïì²¢²»Ã÷ÏÔ£¬ÎÒÃÇÒ²Ö»¡¡

ÊÇÔÚijЩ¶ÔÔËÐÐËÙ¶ÈÒªÇó¿Á¿ÌµÄÌØÊⳡºÏ£¬²Å²»µÃ²»¿¼ÂÇÕâÒ»µã¡£¡¡¡¡



Visual¡¡C£«£«¡¡5¡£0Ö§³Ö¶àÖÖDLL£¬°üÀ¨£º¡¡¡¡



¡¡¡¡l¡¡·ÇMFC¡¡DLL¡¡¡¡



¡¡¡¡l¡¡¾²Ì¬Á´½Óµ½MFCµÄ³£¹æDLL¡¡¡¡



¡¡¡¡l¡¡¶¯Ì¬Á´½Óµ½MFCµÄ³£¹æDLL¡¡¡¡



¡¡¡¡l¡¡MFCÀ©Õ¹DLL¡¡¡¡



ÆäÖзÇMFC¡¡DLL¡¡£¨non¡­MFC¡¡DLL¡¡£©ÄÚ²¿²»Ê¹ÓÃMFC£¬µ÷Ó÷ÇMFC¡¡DLLÌṩ¡¡

µÄµ¼³öº¯ÊýµÄ¿ÉÖ´ÐгÌÐò¿ÉÒÔʹÓÃMFC£¬Ò²¿ÉÒÔ²»Ê¹ÓÃMFC¡£Ò»°ãÀ´¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡standard¡¡¡¡C¡¡¡¡

˵£¬·ÇMFC¡¡¡¡¡¡¡¡¡¡DLLµÄµ¼³öº¯Êý¶¼Ê¹Óñê×¼µÄC½Ó¿Ú¡¡£¨¡¡

interface£©¡£¡¡¡¡



ÆäÓàÈýÖÖDLLµÄÄÚ²¿¶¼Ê¹ÓÃÁËMFC¡£¹ËÃû˼Ò壬¾²Ì¬Á´½Óµ½MFCµÄ³£¹æ¡¡

DLL¡¡£¨regular¡¡DLL¡¡statically¡¡linking¡¡to¡¡MFC£©ºÍ¶¯Ì¬Á´½Óµ½MFC¡¡

µÄ³£¹æDLL¡¡£¨regular¡¡DLL¡¡dynamically¡¡linking¡¡to¡¡MFC£©µÄÇø±ðÔÚ¡¡

ÓÚÒ»¸öʹÓõÄÊÇMFCµÄ¾²Ì¬Á´½Ó¿â£¬¶øÁíÒ»¸öʹÓõÄÊÇMFCµÄDLL¡£Õâ¡¡

ºÍÒ»°ãµÄMFCÓ¦ÓóÌÐòµÄÇé¿öÊǺÜÀàËƵġ£¡¡¡¡



MFCÀ©Õ¹DLLÒ»°ãÓÃÀ´ÌṩÅÉÉúÓÚMFCµÄ¿ÉÖØÓõÄÀ࣬ÒÔÀ©Õ¹ÒÑÓеÄMFC¡¡

Àà¿âµÄ¹¦ÄÜ¡£MFCÀ©Õ¹DLLʹÓÃMFCµÄ¶¯Ì¬Á´½Ó°æ±¾¡£Ö»ÓÐʹÓÃMFC¶¯Ì¬¡¡

Á´½ÓµÄ¿ÉÖ´ÐгÌÐò¡¡£¨ÎÞÂÛÊÇEXE»¹ÊÇDLL£©²ÅÄÜ·ÃÎÊMFCÀ©Õ¹DLL¡£MFC¡¡

À©Õ¹DLLµÄÁíÒ»¸öÓÐÓõŦÄÜÊÇËü¿ÉÒÔÔÚÓ¦ÓóÌÐòºÍËüËù¼ÓÔصÄMFCÀ©¡¡

Õ¹DLLÖ®¼ä´«µÝMFCºÍMFCÅÉÉú¶ÔÏóµÄÖ¸Õë¡£ÔÚÆäËüÇé¿öÏ£¬ÕâÑù×öÊÇ¡¡

¿ÉÄܵ¼ÖÂÎÊÌâµÄ¡£¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡Ö»ÓÐVisual¡¡C£«£«¡¡5¡£0µÄרҵ°æºÍÆóÒµ°æ²ÅÖ§³Öµ½MFCµÄ¾²Ì¬Á´½Ó¡£¡¡¡¡



¡¡¡¡l¡¡¾²Ì¬Á´½Óµ½MFCµÄ³£¹æDLL¹ýÈ¥µÄUSRDLLÓÐ×ÅÏàͬµÄÌØÐÔ£¬Í¬Ñù¡¡

¡¡¡¡¡¡µÄ£¬MFCÀ©Õ¹DLLºÍ¹ýÈ¥µÄAFXDLLÓÐ×ÅÏàͬµÄÌØÐÔ¡£ÔÚVisual¡¡C£«£«¡¡¡¡

¡¡¡¡¡¡5¡£0ÖÐÒѲ»ÔÙʹÓÃUSRDLLºÍAFXDLLÕâÁ½¸öÊõÓï¡£¡¡¡¡



ÈçºÎÑ¡ÔñËùÓ¦¸ÃʹÓõÄDLLµÄÀàÐÍÄØ£¿ÎÒÃÇ¿ÉÒÔ´ÓÒÔϼ¸¸ö·½ÃæÀ´¿¼¡¡

ÂÇ£º¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡664¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡l¡¡Ïà±ÈʹÓÃÁËMFCµÄDLL¶øÑÔ£¬·ÇMFC¡¡DLLÏԵøüΪ¶ÌС¾«º·¡£Òò´Ë£¬¡¡

¡¡¡¡¡¡Èç¹ûDLL²»ÐèҪʹÓÃMFC£¬ÄÇôʹÓ÷ÇMFC¡¡DLLÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ£¬¡¡

¡¡¡¡¡¡Ëü½«ÏÔÖøµØ½ÚÊ¡´ÅÅ̺ÍÄÚ´æ¿Õ¼ä¡£Í¬Ê±£¬ÎÞÂÛÓ¦ÓóÌÐòÊÇ·ñʹÓá¡

¡¡¡¡¡¡ÁËMFC£¬¶¼¿ÉÒÔµ÷Ó÷ÇMFC¡¡DLLÖÐËùµ¼³öµÄº¯Êý¡£¡¡¡¡



¡¡¡¡l¡¡Èç¹ûÐèÒª´´½¨Ê¹ÓÃÁËMFCµÄDLL£¬²¢Ï£ÍûMFCºÍ·ÇMFCÓ¦ÓóÌÐò¶¼ÄÜ¡¡

¡¡¡¡¡¡Ê¹ÓÃËù´´½¨µÄDLL£¬ÄÇô¿ÉÒÔÑ¡ÔñµÄ·¶Î§°üÀ¨¾²Ì¬Á´½Óµ½MFCµÄ³£¡¡

¡¡¡¡¡¡¹æDLLºÍ¶¯Ì¬Á´½Óµ½MFCµÄ³£¹æDLL¡£¶¯Ì¬Á´½Óµ½MFCµÄ³£¹æDLL±È½Ï¡¡

¡¡¡¡¡¡¶ÌС£¬Òò´Ë¿ÉÒÔ½ÚÊ¡´ÅÅ̺ÍÄڴ棬µ«ÊÇ£¬ÔÚ·Ö·¢¶¯Ì¬Á´½Óµ½MFCµÄ¡¡

¡¡¡¡¡¡³£¹æDLLʱ£¬±ØÐëͬʱ·Ö·¢MFCµÄÖ§³ÖDLL£¬ÈçMFCx0¡£DLLºÍ¡¡

¡¡¡¡¡¡MSVCRT¡£DLLµÈ¡£¶øʹÓþ²Ì¬Á´½Óµ½MFCµÄ³£¹æDLLÔò²»´æÔÚÕâÖÖÎÊ¡¡

¡¡¡¡¡¡Ìâ¡£¡¡¡¡



¡¡¡¡l¡¡Èç¹ûÏ£ÍûÔÚDLLÖÐʵÏÖ´ÓMFCÅÉÉúµÄ¿ÉÖØÓõÄÀ࣬»òÕßÊÇÏ£ÍûÔÚÓ¦¡¡

¡¡¡¡¡¡ÓóÌÐòºÍDLLÖ®¼ä´«µÝMFCµÄÅÉÉú¶ÔÏóʱ£¬±ØÐëÑ¡ÔñMFCÀ©Õ¹DLL¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡µÚ¶þ½Ú¡¡´´½¨ºÍʹÓö¯Ì¬Á´½Ó¿â¡¡¡¡



±¾½ÚÒÔ·ÇMFC¡¡¡¡DLLΪÀýÀ´½²½âDLLµÄ½á¹¹ºÍµ¼³ö·½·¨£¬²¢½éÉÜ´´½¨ºÍʹ¡¡

ÓÃDLLµÄ·½·¨ºÍ²½Öè¡£¡¡¡¡



13¡£2¡£1¡¡DLLµÄ½á¹¹ºÍµ¼³ö·½Ê½¡¡¡¡



DLLÎļþºÍEXEÎļþ¶¼ÊôÓÚ¿ÉÖ´ÐÐÎļþ£¬²»Í¬µÄÊÇDLLÎļþ°üÀ¨ÁËÒ»¸ö¡¡

µ¼³ö±í£¬µ¼³ö±íÖиø³öÁË¿ÉÒÔ´ÓDLLÖе¼³öµÄËùÓк¯ÊýµÄÃû×Ö¡£Íⲿ¡¡

¿ÉÖ´ÐгÌÐòÖ»ÄÜ·ÃÎÊ°üÀ¨ÔÚDLLµÄµ¼³ö±íÖеĺ¯Êý£¬DLLÖеÄÆäËüº¯Êý¡¡

ÊÇ˽Óеģ¬²»ÄÜΪÍⲿ¿ÉÖ´ÐгÌÐòËù·ÃÎÊ¡£¡¡¡¡



¿ÉÒÔʹÓÃVisual¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡C£«£«ÌṩµÄDUMPBINʵÓóÌÐò¡¡£¨¿ÉÒÔÔÚ¡¡

DevStudioVCbin¡¡Ä¿Â¼ÏÂÕÒµ½Õâ¸ö¹¤¾ß£©À´²é¿´Ò»¸öDLLÎļþµÄ½á¡¡

¹¹¡£¾ÙÒ»¸öÀý×Ó£¬Èç¹ûÐèÒª²é¿´DLLÎļþmsgbox¡£dll¡¡£¨ÎÒÃǽ«ÔÚ±¾Ð¡¡¡

½ÚµÄºóÐøÄÚÈÝÖд´½¨¸ÃDLL£©µÄµ¼³ö±í£¬¿ÉÒÔÔÚÃüÁîÌáʾ·ûϼüÈëÏ¡¡

ÃæµÄÃüÁ¡¡¡¡



¡·dumpbin¡¡/exports¡¡msgbox¡£dll¡¡¡¡



ÔËÐнá¹ûÈçÏ£º¡¡¡¡



Microsoft¡¡£¨R£©¡¡COFF¡¡Binary¡¡File¡¡Dumper¡¡Version¡¡5¡£00¡£7022¡¡¡¡



Copyright¡¡£¨C£©¡¡Microsoft¡¡Corp¡¡1992¡­1997¡£¡¡All¡¡rights¡¡reserved¡£¡¡¡¡



Dump¡¡of¡¡file¡¡msgbox¡£dll¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡665¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

File¡¡Type£º¡¡DLL¡¡¡¡



Section¡¡contains¡¡the¡¡following¡¡Exports¡¡for¡¡MSGBOX¡£dll¡¡¡¡



0¡¡characteristics¡¡¡¡



351643C3¡¡time¡¡date¡¡stamp¡¡Mon¡¡Mar¡¡23¡¡19£º13£º07¡¡1998¡¡¡¡



0¡£00¡¡version¡¡¡¡



1¡¡ordinal¡¡base¡¡¡¡



1¡¡number¡¡of¡¡functions¡¡¡¡



1¡¡number¡¡of¡¡names¡¡¡¡



ordinal¡¡hint¡¡name¡¡¡¡



1¡¡0¡¡MsgBox¡¡£¨00001000£©¡¡¡¡



Summary¡¡¡¡



7000¡¡¡£data¡¡¡¡



1000¡¡¡£idata¡¡¡¡



2000¡¡¡£rdata¡¡¡¡



2000¡¡¡£reloc¡¡¡¡



17000¡¡¡£text¡¡¡¡



ÓÉÉÏÃæµÄ½á¹ûµÃÖª£¬msgbox¡£dllÖнö°üÀ¨ÁËÒ»¸öµ¼³öº¯ÊýMsgBox£¨£©¡£¡¡¡¡



¡¡¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡¡¡l¡¡½ö½öÖªµÀµ¼³öº¯ÊýµÄÃû³Æ²¢²»×ãÒÔ´ÓDLL¡¡Öе¼³ö¸Ãº¯Êý¡£ÈôÔÚÓ¦Óá¡

¡¡¡¡¡¡¡¡¡¡³ÌÐòÖÐʹÓÃÏÔʽÁ´½Ó¡¡£¨link¡¡explicitly£©£¬ÖÁÉÙ»¹Ó¦¸ÃÖªµÀµ¼³ö¡¡

¡¡¡¡¡¡¡¡¡¡º¯ÊýµÄ·µ»ØÖµµÄÀàÐÍÒÔ¼°Ëù´«µÝ¸øµ¼³öº¯ÊýµÄ²ÎÊýµÄ¸öÊý¡¢Ë³Ðò¡¡

¡¡¡¡¡¡¡¡¡¡ºÍÀàÐÍ£»ÈôʹÓÃÒþº¬Á´½Ó¡¡£¨link¡¡implicitly£©£¬±ØÐëÓаüÀ¨µ¼³ö¡¡

¡¡¡¡¡¡¡¡¡¡º¯Êý¡¡£¨»òÀࣩµÄ¶¨ÒåµÄÍ·Îļþ¡¡£¨¡£HÎļþ£©ºÍÒýÈë¿â¡¡£¨import¡¡¡¡

¡¡¡¡¡¡¡¡¡¡library£¬¡£LIBÎļþ£©£¬ÕâЩÎļþÊÇÓÉDLLµÄ´´½¨ÕßËùÌṩµÄ¡£¹Ø¡¡

¡¡¡¡¡¡¡¡¡¡ÓÚÏÔʽÁ´½ÓºÍÒþº¬Á´½Ó£¬½«ÔÚ±¾Õµġ¡¡°13¡£2¡£2¡¡Á´½ÓÓ¦ÓóÌÐòµ½¡¡

¡¡¡¡¡¡¡¡¡¡DLL¡±Ð¡½ÚÖн²Êö¡£¡¡¡¡



´ÓDLLÖе¼³öº¯ÊýÓÐÁ½ÖÖ·½·¨£º¡¡¡¡



¡¡¡¡¡¡l¡¡ÔÚ´´½¨DLLʱʹÓÃÄ£¿é¶¨Òå¡¡£¨module¡¡DEFinition£¬¡£DEF£©Îļþ¡£¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡666¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡l¡¡ÔÚ¶¨Ò庯ÊýʱʹÓùؼü×Ö__declspec£¨dllexport£©¡£¡¡¡¡



ÏÂÃæÎÒÃÇͨ¹ýÒ»¸ö¼òµ¥µÄÀý×ÓÀ´·Ö±ð˵Ã÷Á½ÖÖ·½·¨µÄʹÓá£ÔÚÕâ¸öÀý¡¡

×ÓÖУ¬ÎÒÃǽ«´´½¨Ò»¸öÖ»°üÀ¨Ò»¸öº¯ÊýMsgBox£¨£©¡¡µÄDLL£¬º¯ÊýMsgBox¡¡

£¨£©ÓÃÀ´ÏÔʾһ¸öÏûÏ¢¿ò£¬ËüºÍWin32¡¡¡¡¡¡APIº¯ÊýMessageBox£¨£©µÄ¹¦ÄÜÊÇ¡¡

Ò»Ñù£¬Ö»²»¹ýÔÚº¯ÊýMsgBox£¨£©ÖУ¬²»ÐèÒªÖ¸¶¨ÏûÏ¢µÄ¸¸´°¿Ú£¬¶øÇÒ¿É¡¡

ÒÔȱʡÆäËüËùÓеIJÎÊý¡
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨1£© ²È£¨1£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡