²é¿´: 1017  |  »Ø¸´: 11
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

zsglly

ľ³æ (ÖøÃûдÊÖ)

[½»Á÷] ÎÒµÄDll(¶¯Ì¬Á´½Ó¿â)ѧϰ±Ê¼Ç

DLL(Dynamic Link Libraries)רÌ⣺

    ±È½Ï´óµÄÓ¦ÓóÌÐò¶¼ÓɺܶàÄ£¿é×é³É£¬ÕâЩģ¿é·Ö±ðÍê³ÉÏà¶Ô¶ÀÁ¢µÄ¹¦ÄÜ£¬ËüÃDZ˴ËЭ×÷À´Íê³ÉÕû¸öÈí¼þϵͳµÄ¹¤×÷¡£¿ÉÄÜ´æÔÚһЩģ¿éµÄ¹¦ÄܽÏΪͨÓã¬ÔÚ¹¹ÔìÆäËüÈí¼þϵͳʱÈԻᱻʹÓá£ÔÚ¹¹ÔìÈí¼þϵͳʱ£¬Èç¹û½«ËùÓÐÄ£¿éµÄÔ´´úÂë¶¼¾²Ì¬±àÒëµ½Õû¸öÓ¦ÓóÌÐòEXEÎļþÖУ¬»á²úÉúһЩÎÊÌ⣺һ¸öȱµãÊÇÔö¼ÓÁËÓ¦ÓóÌÐòµÄ´óС£¬Ëü»áÕ¼Óøü¶àµÄ´ÅÅ̿ռ䣬³ÌÐòÔËÐÐʱҲ»áÏûºÄ½Ï´óµÄÄÚ´æ¿Õ¼ä£¬Ôì³Éϵͳ×ÊÔ´µÄÀË·Ñ£»ÁíÒ»¸öȱµãÊÇ£¬ÔÚ±àд´óµÄEXE³ÌÐòʱ£¬ÔÚÿ´ÎÐÞ¸ÄÖØ½¨Ê±¶¼±ØÐëµ÷Õû±àÒëËùÓÐÔ´´úÂ룬Ôö¼ÓÁ˱àÒë¹ý³ÌµÄ¸´ÔÓÐÔ£¬Ò²²»ÀûÓÚ½×¶ÎÐԵĵ¥Ôª²âÊÔ¡£  

    Windowsϵͳƽ̨ÉÏÌṩÁËÒ»ÖÖÍêÈ«²»Í¬µÄ½ÏÓÐЧµÄ±à³ÌºÍÔËÐл·¾³£¬Äã¿ÉÒÔ½«¶ÀÁ¢µÄ³ÌÐòÄ£¿é´´½¨Îª½ÏСµÄDLL(Dynamic Linkable Library)Îļþ£¬²¢¿É¶ÔËüÃǵ¥¶À±àÒëºÍ²âÊÔ¡£ÔÚÔËÐÐʱ£¬Ö»Óе±EXE³ÌÐòȷʵҪµ÷ÓÃÕâЩDLLÄ£¿éµÄÇé¿öÏ£¬ÏµÍ³²Å»á½«ËüÃÇ×°ÔØµ½ÄÚ´æ¿Õ¼äÖС£ÕâÖÖ·½Ê½²»½ö¼õÉÙÁËEXEÎļþµÄ´óСºÍ¶ÔÄÚ´æ¿Õ¼äµÄÐèÇ󣬶øÇÒʹÕâЩDLLÄ£¿é¿ÉÒÔͬʱ±»¶à¸öÓ¦ÓóÌÐòʹÓá£Windows×Ô¼º¾Í½«Ò»Ð©Ö÷ÒªµÄϵͳ¹¦ÄÜÒÔDLLÄ£¿éµÄÐÎʽʵÏÖ¡£  

    Ò»°ãÀ´Ëµ£¬DLLÊÇÒ»ÖÖ´ÅÅÌÎļþ£¬ÒÔ.DLL¡¢.DRV¡¢.FON¡¢.SYSºÍÐí¶àÒÔ.EXEΪÀ©Õ¹ÃûµÄϵͳÎļþ¶¼¿ÉÒÔÊÇDLL¡£ËüÓÉÈ«¾ÖÊý¾Ý¡¢·þÎñº¯ÊýºÍ×ÊÔ´×é³É£¬ÔÚÔËÐÐʱ±»ÏµÍ³¼ÓÔØµ½½ø³ÌµÄÐéÄâ¿Õ¼äÖУ¬³ÉΪµ÷Óýø³ÌµÄÒ»²¿·Ö¡£Èç¹ûÓëÆäËüDLLÖ®¼äûÓгåÍ»£¬¸ÃÎļþͨ³£Ó³Éäµ½½ø³ÌÐéÄâ¿Õ¼äµÄͬһµØÖ·ÉÏ¡£DLLÄ£¿éÖаüº¬¸÷ÖÖµ¼³öº¯Êý£¬ÓÃÓÚÏòÍâ½çÌṩ·þÎñ¡£DLL¿ÉÒÔÓÐ×Ô¼ºµÄÊý¾Ý¶Î£¬µ«Ã»ÓÐ×Ô¼ºµÄ¶ÑÕ»£¬Ê¹ÓÃÓëµ÷ÓÃËüµÄÓ¦ÓóÌÐòÏàͬµÄ¶Ñջģʽ£»Ò»¸öDLLÔÚÄÚ´æÖÐÖ»ÓÐÒ»¸öʵÀý£»DLLʵÏÖÁË´úÂë·â×°ÐÔ£»DLLµÄ±àÖÆÓë¾ßÌåµÄ±à³ÌÓïÑÔ¼°±àÒëÆ÷Î޹ء£  

    ÔÚWin32»·¾³ÖУ¬Ã¿¸ö½ø³Ì¶¼¸´ÖÆÁË×Ô¼ºµÄ¶Á/дȫ¾Ö±äÁ¿¡£Èç¹ûÏëÒªÓëÆäËü½ø³Ì¹²ÏíÄڴ棬±ØÐëʹÓÃÄÚ´æÓ³ÉäÎļþ»òÕßÉùÃ÷Ò»¸ö¹²ÏíÊý¾Ý¶Î¡£DLLÄ£¿éÐèÒªµÄ¶ÑÕ»ÄÚ´æ¶¼ÊÇ´ÓÔËÐнø³ÌµÄ¶ÑÕ»ÖзÖÅä³öÀ´µÄ¡£WindowsÔÚ¼ÓÔØDLLÄ£¿éʱ½«½ø³Ìº¯Êýµ÷ÓÃÓëDLLÎļþµÄµ¼³öº¯ÊýÏàÆ¥Åä¡£Windows²Ù×÷ϵͳ¶ÔDLLµÄ²Ù×÷½ö½öÊǰÑDLLÓ³Éäµ½ÐèÒªËüµÄ½ø³ÌµÄÐéÄâµØÖ·¿Õ¼äÀïÈ¥¡£DLLº¯ÊýÖеĴúÂëËù´´½¨µÄÈκζÔÏ󣨰üÀ¨±äÁ¿£©¶¼¹éµ÷ÓÃËüµÄÏ̻߳ò½ø³ÌËùÓÐ.         

Ò»¡¢¹ØÓÚµ÷Ó÷½Ê½£º

1¡¢¾²Ì¬µ÷Ó÷½Ê½£ºÓɱàÒëϵͳÍê³É¶ÔDLLµÄ¼ÓÔØºÍÓ¦ÓóÌÐò½áÊøÊ±DLLÐ¶ÔØµÄ±àÂ루È绹ÓÐÆäËü³ÌÐòʹÓøÃDLL£¬ÔòWindows¶ÔDLLµÄÓ¦ÓüǼ¼õ1£¬Ö±µ½ËùÓÐÏà¹Ø³ÌÐò¶¼½áÊø¶Ô¸ÃDLLµÄʹÓÃʱ²ÅÊÍ·ÅËü£©£¬¼òµ¥ÊµÓ㬵«²»¹»Áé»î£¬Ö»ÄÜÂú×ãÒ»°ãÒªÇó¡£

ÒþʽµÄµ÷ÓãºÐèÒª°Ñ²úÉú¶¯Ì¬Á¬½Ó¿âʱ²úÉúµÄ.LIBÎļþ¼ÓÈëµ½Ó¦ÓóÌÐòµÄ¹¤³ÌÖУ¬ÏëʹÓÃDLLÖеĺ¯Êýʱ£¬Ö»Ðë˵Ã÷һϡ£Òþʽµ÷Óò»ÐèÒªµ÷ÓÃLoadLibrary()ºÍFreeLibrary()¡£³ÌÐòÔ±ÔÚ½¨Á¢Ò»¸öDLLÎļþʱ£¬Á´½Ó³ÌÐò»á×Ô¶¯Éú³ÉÒ»¸öÓëÖ®¶ÔÓ¦µÄLIBµ¼ÈëÎļþ¡£¸ÃÎļþ°üº¬ÁËÿһ¸öDLLµ¼³öº¯ÊýµÄ·ûºÅÃûºÍ¿ÉÑ¡µÄ±êʶºÅ£¬µ«ÊDz¢²»º¬ÓÐʵ¼ÊµÄ´úÂë¡£LIBÎļþ×÷ΪDLLµÄÌæ´úÎļþ±»±àÒëµ½Ó¦ÓóÌÐòÏîÄ¿ÖС£µ±³ÌÐòԱͨ¹ý¾²Ì¬Á´½Ó·½Ê½±àÒëÉú³ÉÓ¦ÓóÌÐòʱ£¬Ó¦ÓóÌÐòÖеĵ÷Óú¯ÊýÓëLIBÎļþÖе¼³ö·ûºÅÏàÆ¥Å䣬ÕâЩ·ûºÅ»ò±êʶºÅ½øÈëµ½Éú³ÉµÄEXEÎļþÖС£LIBÎļþÖÐÒ²°üº¬Á˶ÔÓ¦µÄDLLÎļþÃû£¨µ«²»ÊÇÍêÈ«µÄ·¾¶Ãû£©£¬Á´½Ó³ÌÐò½«Æä´æ´¢ÔÚEXEÎļþÄÚ²¿¡£µ±Ó¦ÓóÌÐòÔËÐйý³ÌÖÐÐèÒª¼ÓÔØDLLÎļþʱ£¬Windows¸ù¾ÝÕâЩÐÅÏ¢·¢ÏÖ²¢¼ÓÔØDLL£¬È»ºóͨ¹ý·ûºÅÃû»ò±êʶºÅʵÏÖ¶ÔDLLº¯ÊýµÄ¶¯Ì¬Á´½Ó¡£ËùÓб»Ó¦ÓóÌÐòµ÷ÓõÄDLLÎļþ¶¼»áÔÚÓ¦ÓóÌÐòEXEÎļþ¼ÓÔØÊ±±»¼ÓÔØÔÚµ½ÄÚ´æÖС£¿ÉÖ´ÐгÌÐòÁ´½Óµ½Ò»¸ö°üº¬DLLÊä³öº¯ÊýÐÅÏ¢µÄÊäÈë¿âÎļþ(.LIBÎļþ)¡£²Ù×÷ϵͳÔÚ¼ÓÔØÊ¹ÓÿÉÖ´ÐгÌÐòʱ¼ÓÔØDLL¡£¿ÉÖ´ÐгÌÐòÖ±½Óͨ¹ýº¯ÊýÃûµ÷ÓÃDLLµÄÊä³öº¯Êý£¬µ÷Ó÷½·¨ºÍ³ÌÐòÄÚ²¿ÆäËûµÄº¯ÊýÊÇÒ»ÑùµÄ¡£

[ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-3 at 08:06 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

houcy

гæ (³õÈëÎÄ̳)

1

Â¥Ö÷Ç¿£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡
ÇëÎÊÂ¥Ö÷¿´µÄÄı¾Ê飿£¿£¿ÎÒ×î½ü¿´µÄ¡¶ÉîÈëdz³öMFC¡·£¬
6Â¥2005-12-31 18:48:46
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 12 ¸ö»Ø´ð

zsglly

ľ³æ (ÖøÃûдÊÖ)

2¡¢¶¯Ì¬µ÷Ó÷½Ê½£ºÊÇÓɱà³ÌÕßÓÃAPIº¯Êý¼ÓÔØºÍÐ¶ÔØDLLÀ´´ïµ½µ÷ÓÃDLLµÄÄ¿µÄ£¬Ê¹ÓÃÉϽϸ´ÔÓ£¬µ«Äܸü¼ÓÓÐЧµØÊ¹ÓÃÄڴ棬ÊDZàÖÆ´óÐÍÓ¦ÓóÌÐòʱµÄÖØÒª·½Ê½¡£

ÏÔʽµÄµ÷ÓãºÊÇÖ¸ÔÚÓ¦ÓóÌÐòÖÐÓÃLoadLibrary»òMFCÌṩµÄAfxLoadLibraryÏÔʽµÄ½«×Ô¼ºËù×öµÄ¶¯Ì¬Á¬½Ó¿âµ÷½øÀ´£¬¶¯Ì¬Á¬½Ó¿âµÄÎļþÃû¼´ÊÇÉÏÃæÁ½¸öº¯ÊýµÄ²ÎÊý£¬ÔÙÓÃGetProcAddress()»ñÈ¡ÏëÒªÒýÈëµÄº¯Êý¡£×Ô´Ë£¬Äã¾Í¿ÉÒÔÏóʹÓÃÈçͬ±¾Ó¦ÓóÌÐò×Ô¶¨ÒåµÄº¯ÊýÒ»ÑùÀ´µ÷ÓôËÒýÈ뺯ÊýÁË¡£ÔÚÓ¦ÓóÌÐòÍ˳ö֮ǰ£¬Ó¦¸ÃÓÃFreeLibrary»òMFCÌṩµÄAfxFreeLibraryÊͷŶ¯Ì¬Á¬½Ó¿â¡£Ö±½Óµ÷ÓÃWin32 µÄLoadLibaryº¯Êý£¬²¢Ö¸¶¨DLLµÄ·¾¶×÷Ϊ²ÎÊý¡£LoadLibary·µ»ØHINSTANCE²ÎÊý£¬Ó¦ÓóÌÐòÔÚµ÷ÓÃGetProcAddressº¯ÊýʱʹÓÃÕâÒ»²ÎÊý¡£GetProcAddressº¯Êý½«·ûºÅÃû»ò±êʶºÅת»»ÎªDLLÄÚ²¿µÄµØÖ·¡£³ÌÐòÔ±¿ÉÒÔ¾ö¶¨DLLÎļþºÎʱ¼ÓÔØ»ò²»¼ÓÔØ£¬ÏÔʽÁ´½ÓÔÚÔËÐÐʱ¾ö¶¨¼ÓÔØÄĸöDLLÎļþ¡£Ê¹ÓÃDLLµÄ³ÌÐòÔÚʹÓÃ֮ǰ±ØÐë¼ÓÔØ£¨LoadLibrary£©¼ÓÔØDLL´Ó¶øµÃµ½Ò»¸öDLLÄ£¿éµÄ¾ä±ú£¬È»ºóµ÷ÓÃGetProcAddressº¯ÊýµÃµ½Êä³öº¯ÊýµÄÖ¸Õ룬ÔÚÍ˳ö֮ǰ±ØÐëÐ¶ÔØDLL(FreeLibrary)¡£

    Windows½«×ñÑ­ÏÂÃæµÄËÑË÷˳ÐòÀ´¶¨Î»DLL£º  
1£®°üº¬EXEÎļþµÄĿ¼£¬  
2£®½ø³ÌµÄµ±Ç°¹¤×÷Ŀ¼£¬  
3£®WindowsϵͳĿ¼£¬  
4£®WindowsĿ¼£¬  
5£®ÁÐÔÚPath»·¾³±äÁ¿ÖеÄһϵÁÐĿ¼¡£

¶þ¡¢MFCÖеÄdll£º

a¡¢Non-MFC DLL:Ö¸µÄÊDz»ÓÃMFCµÄÀà¿â½á¹¹£¬Ö±½ÓÓÃCÓïÑÔдµÄDLL£¬ÆäÊä³öµÄº¯ÊýÒ»°ãÓõÄÊDZê×¼C½Ó¿Ú£¬²¢Äܱ»·ÇMFC»òMFC±àдµÄÓ¦ÓóÌÐòËùµ÷Óá£

b¡¢Regular DLL:ºÍÏÂÊöµÄExtension DllsÒ»Ñù£¬ÊÇÓÃMFCÀà¿â±àдµÄ¡£Ã÷ÏÔµÄÌØµãÊÇÔÚÔ´ÎļþÀïÓÐÒ»¸ö¼Ì³ÐCWinAppµÄÀà¡£ÆäÓÖ¿Éϸ·Ö³É¾²Ì¬Á¬½Óµ½MFCºÍ¶¯Ì¬Á¬½Óµ½MFCÉϵġ£

¾²Ì¬Á¬½Óµ½MFCµÄ¶¯Ì¬Á¬½Ó¿âÖ»±»VCµÄרҵ°ãºÍÆóÒµ°æËùÖ§³Ö¡£¸ÃÀàDLLÓ¦ÓóÌÐòÀïÍ·µÄÊä³öº¯Êý¿ÉÒÔ±»ÈÎÒâWin32³ÌÐòʹÓ㬰üÀ¨Ê¹ÓÃMFCµÄÓ¦ÓóÌÐò¡£ÊäÈ뺯ÊýÓÐÈçÏÂÐÎʽ£º
extern "C" EXPORT YourExportedFunction( );
Èç¹ûûÓÐextern ¡°C¡±ÐÞÊΣ¬Êä³öº¯Êý½ö½öÄÜ´ÓC++´úÂëÖе÷Óá£
DLLÓ¦ÓóÌÐò´ÓCWinAppÅÉÉú£¬µ«Ã»ÓÐÏûϢѭ»·¡£

¶¯Ì¬Á´½Óµ½MFCµÄ¹æÔòDLLÓ¦ÓóÌÐòÀïÍ·µÄÊä³öº¯Êý¿ÉÒÔ±»ÈÎÒâWin32³ÌÐòʹÓ㬰üÀ¨Ê¹ÓÃMFCµÄÓ¦ÓóÌÐò¡£µ«ÊÇ£¬ËùÓдÓDLLÊä³öµÄº¯ÊýÓ¦¸ÃÒÔÈçÏÂÓï¾ä¿ªÊ¼£º
AFX_MANAGE_STATE(AfxGetStaticModuleState( ))
´ËÓï¾äÓÃÀ´ÕýÈ·µØÇл»MFCÄ£¿é״̬¡£

Regular DLLÄܹ»±»ËùÓÐÖ§³ÖDLL¼¼ÊõµÄÓïÑÔËù±àдµÄÓ¦ÓóÌÐòËùµ÷Óá£ÔÚÕâÖÖ¶¯Ì¬Á¬½Ó¿âÖУ¬Ëü±ØÐëÓÐÒ»¸ö´ÓCWinApp¼Ì³ÐÏÂÀ´µÄÀ࣬DllMainº¯Êý±»MFCËùÌṩ£¬²»ÓÃ×Ô¼ºÏÔʽµÄд³öÀ´¡£

c¡¢Extension DLL:ÓÃÀ´ÊµÏÖ´ÓMFCËù¼Ì³ÐÏÂÀ´µÄÀàµÄÖØÐÂÀûÓã¬Ò²¾ÍÊÇ˵£¬ÓÃÕâÖÖÀàÐ͵Ķ¯Ì¬Á¬½Ó¿â£¬¿ÉÒÔÓÃÀ´Êä³öÒ»¸ö´ÓMFCËù¼Ì³ÐÏÂÀ´µÄÀà¡£ËüÊä³öµÄº¯Êý½ö¿ÉÒÔ±»Ê¹ÓÃMFCÇÒ¶¯Ì¬Á´½Óµ½MFCµÄÓ¦ÓóÌÐòʹÓ᣿ÉÒÔ´ÓMFC¼Ì³ÐÄãËùÏëÒªµÄ¡¢¸üÊÊÓÚÄã×Ô¼ºÓõÄÀ࣬²¢°ÑËüÌṩ¸øÄãµÄÓ¦ÓóÌÐò¡£ÄãÒ²¿ÉËæÒâµÄ¸øÄãµÄÓ¦ÓóÌÐòÌṩMFC»òMFC¼Ì³ÐÀàµÄ¶ÔÏóÖ¸Õë¡£Extension DLLʹÓÃMFCµÄ¶¯Ì¬Á¬½Ó°æ±¾Ëù´´½¨µÄ£¬²¢ÇÒËüÖ»±»ÓÃMFCÀà¿âËù±àдµÄÓ¦ÓóÌÐòËùµ÷Óá£Extension DLLs ºÍRegular DLLs²»Ò»Ñù£¬ËüûÓÐÒ»¸ö´ÓCWinApp¼Ì³Ð¶øÀ´µÄÀàµÄ¶ÔÏó£¬ËùÒÔ£¬Äã±ØÐëΪ×Ô¼ºDllMainº¯ÊýÌí¼Ó³õʼ»¯´úÂëºÍ½áÊø´úÂë¡£

ºÍ¹æÔòDLLÏà±È£¬ÓÐÒÔϲ»Í¬£º

1¡¢ËüûÓÐÒ»¸ö´ÓCWinAppÅÉÉúµÄ¶ÔÏó£»
2¡¢Ëü±ØÐëÓÐÒ»¸öDllMainº¯Êý£»
3¡¢DllMainµ÷ÓÃAfxInitExtensionModuleº¯Êý£¬±ØÐë¼ì²é¸Ãº¯ÊýµÄ·µ»ØÖµ£¬Èç¹û·µ»Ø0£¬DllMmainÒ²·µ»Ø0£»
4¡¢Èç¹ûËüÏ£ÍûÊä³öCRuntimeClassÀàÐ͵ĶÔÏó»òÕß×ÊÔ´(Resources)£¬ÔòÐèÒªÌṩһ¸ö³õʼ»¯º¯ÊýÀ´´´½¨Ò»¸öCDynLinkLibrary¶ÔÏó¡£²¢ÇÒ£¬ÓбØÒª°Ñ³õʼ»¯º¯ÊýÊä³ö£»
5¡¢Ê¹ÓÃÀ©Õ¹DLLµÄMFCÓ¦ÓóÌÐò±ØÐëÓÐÒ»¸ö´ÓCWinAppÅÉÉúµÄÀ࣬¶øÇÒ£¬Ò»°ãÔÚInitInstanceÀïµ÷ÓÃÀ©Õ¹DLLµÄ³õʼ»¯º¯Êý¡£

Èý¡¢dllÈë¿Úº¯Êý£º

1¡¢Ã¿Ò»¸öDLL±ØÐëÓÐÒ»¸öÈë¿Úµã£¬DllMainÊÇÒ»¸öȱʡµÄÈë¿Úº¯Êý¡£DllMain¸ºÔð³õʼ»¯(Initialization)ºÍ½áÊø(Termination)¹¤×÷£¬Ã¿µ±Ò»¸öеĽø³Ì»òÕ߸ýø³ÌµÄеÄÏ̷߳ÃÎÊDLLʱ£¬»òÕß·ÃÎÊDLLµÄÿһ¸ö½ø³Ì»òÕßÏ̲߳»ÔÙʹÓÃDLL»òÕß½áÊøÊ±£¬¶¼»áµ÷ÓÃDllMain¡£µ«ÊÇ£¬Ê¹ÓÃTerminateProcess»òTerminateThread½áÊø½ø³Ì»òÕßỊ̈߳¬²»»áµ÷ÓÃDllMain¡£

DllMainµÄº¯ÊýÔ­ÐÍ£º
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
switch(ul_reason_for_call)  
{
case DLL_PROCESS_ATTACH:
.......
case DLL_THREAD_ATTACH:
.......
case DLL_THREAD_DETACH:
.......
case DLL_PROCESS_DETACH:
.......
return TRUE;
}
}

²ÎÊý£º
hMoudle£ºÊǶ¯Ì¬¿â±»µ÷ÓÃʱËù´«µÝÀ´µÄÒ»¸öÖ¸Ïò×Ô¼ºµÄ¾ä±ú(ʵ¼ÊÉÏ£¬ËüÊÇÖ¸Ïò_DGROUP¶ÎµÄÒ»¸öÑ¡Ôñ·û)£»
ul_reason_for_call£ºÊÇÒ»¸ö˵Ã÷¶¯Ì¬¿â±»µ÷Ô­ÒòµÄ±êÖ¾¡£µ±½ø³Ì»òÏß³Ì×°Èë»òÐ¶ÔØ¶¯Ì¬Á¬½Ó¿âµÄʱºò£¬²Ù×÷ϵͳµ÷ÓÃÈë¿Úº¯Êý£¬²¢ËµÃ÷¶¯Ì¬Á¬½Ó¿â±»µ÷ÓõÄÔ­Òò¡£ËüËùÓеĿÉÄÜֵΪ£º
DLL_PROCESS_ATTACH: ½ø³Ì±»µ÷Óã»
DLL_THREAD_ATTACH: Ï̱߳»µ÷Óã»
DLL_PROCESS_DETACH: ½ø³Ì±»Í£Ö¹£»
DLL_THREAD_DETACH: Ï̱߳»Í£Ö¹£»
lpReserved£ºÊÇÒ»¸ö±»ÏµÍ³Ëù±£ÁôµÄ²ÎÊý¡£

2¡¢_DllMainCRTStartup

ΪÁËʹÓá°C¡±ÔËÐпâ(CRT£¬C Run time Library)µÄDLL°æ±¾£¨¶àỊ̈߳©£¬Ò»¸öDLLÓ¦ÓóÌÐò±ØÐëÖ¸¶¨_DllMainCRTStartupΪÈë¿Úº¯Êý£¬DLLµÄ³õʼ»¯º¯Êý±ØÐëÊÇDllMain¡£

_DllMainCRTStartupÍê³ÉÒÔÏÂÈÎÎñ£ºµ±½ø³Ì»òÏß³ÌÀ¦°ó(Attach)µ½DLLʱΪ¡°C¡±ÔËÐÐʱµÄÊý¾Ý(C Runtime Data)·ÖÅä¿Õ¼äºÍ³õʼ»¯²¢ÇÒ¹¹ÔìÈ«¾Ö¡°C++¡±¶ÔÏ󣬵±½ø³Ì»òÕßÏß³ÌÖÕֹʹÓÃDLL(Detach)ʱ£¬ÇåÀíC Runtime Data²¢ÇÒÏú»ÙÈ«¾Ö¡°C++¡±¶ÔÏó¡£Ëü»¹µ÷ÓÃDllMainºÍRawDllMainº¯Êý¡£

RawDllMainÔÚDLLÓ¦ÓóÌÐò¶¯Ì¬Á´½Óµ½MFC DLLʱ±»ÐèÒª£¬µ«ËüÊǾ²Ì¬µÄÁ´½Óµ½DLLÓ¦ÓóÌÐòµÄ¡£ÔÚ½²Êö״̬¹ÜÀíʱ½âÊÍÆäÔ­Òò¡£

ËÄ¡¢¹ØÓÚÔ¼¶¨£º

¶¯Ì¬¿âÊä³öº¯ÊýµÄÔ¼¶¨ÓÐÁ½ÖÖ£ºµ÷ÓÃÔ¼¶¨ºÍÃû×ÖÐÞÊÎÔ¼¶¨¡£

1)µ÷ÓÃÔ¼¶¨(Calling convention)£º¾ö¶¨º¯Êý²ÎÊý´«ËÍʱÈëÕ»ºÍ³öÕ»µÄ˳Ðò£¬Óɵ÷ÓÃÕß»¹ÊDZ»µ÷ÓÃÕ߰ѲÎÊýµ¯³öÕ»£¬ÒÔ¼°±àÒëÆ÷ÓÃÀ´Ê¶±ðº¯ÊýÃû×ÖµÄÐÞÊÎÔ¼¶¨¡£
×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
2Â¥2005-12-31 17:15:21
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zsglly

ľ³æ (ÖøÃûдÊÖ)

º¯Êýµ÷ÓÃÔ¼¶¨ÓжàÖÖ£¬ÕâÀï¼òµ¥ËµÒ»Ï£º

   1¡¢__stdcallµ÷ÓÃÔ¼¶¨Ï൱ÓÚ16λ¶¯Ì¬¿âÖо­³£Ê¹ÓõÄPASCALµ÷ÓÃÔ¼¶¨¡£ÔÚ32λµÄVC++5.0ÖÐPASCALµ÷ÓÃÔ¼¶¨²»ÔÙ±»Ö§³Ö£¨Êµ¼ÊÉÏËüÒѱ»¶¨ÒåΪ__stdcall¡£³ýÁË__pascalÍ⣬__fortranºÍ__syscallÒ²²»±»Ö§³Ö£©£¬È¡¶ø´úÖ®µÄÊÇ__stdcallµ÷ÓÃÔ¼¶¨¡£Á½ÕßʵÖÊÉÏÊÇÒ»Öµģ¬¼´º¯ÊýµÄ²ÎÊý×ÔÓÒÏò×óͨ¹ýÕ»´«µÝ£¬±»µ÷Óõĺ¯ÊýÔÚ·µ»ØÇ°ÇåÀí´«ËͲÎÊýµÄÄÚ´æÕ»£¬µ«²»Í¬µÄÊǺ¯ÊýÃûµÄÐÞÊβ¿·Ö£¨¹ØÓÚº¯ÊýÃûµÄÐÞÊβ¿·ÖÔÚºóÃæ½«Ïêϸ˵Ã÷£©¡£

    _stdcallÊÇPascal³ÌÐòµÄȱʡµ÷Ó÷½Ê½£¬Í¨³£ÓÃÓÚWin32 ApiÖУ¬º¯Êý²ÉÓôÓÓÒµ½×óµÄѹջ·½Ê½£¬×Ô¼ºÔÚÍ˳öʱÇå¿Õ¶ÑÕ»¡£VC½«º¯Êý±àÒëºó»áÔÚº¯ÊýÃûÇ°Ãæ¼ÓÉÏÏ»®Ïßǰ׺£¬ÔÚº¯ÊýÃûºó¼ÓÉÏ"@"ºÍ²ÎÊýµÄ×Ö½ÚÊý¡£

    2¡¢Cµ÷ÓÃÔ¼¶¨£¨¼´ÓÃ__cdecl¹Ø¼ü×Ö˵Ã÷£©°´´ÓÓÒÖÁ×óµÄ˳Ðòѹ²ÎÊýÈëÕ»£¬Óɵ÷ÓÃÕ߰ѲÎÊýµ¯³öÕ»¡£¶ÔÓÚ´«ËͲÎÊýµÄÄÚ´æÕ»ÊÇÓɵ÷ÓÃÕßÀ´Î¬»¤µÄ£¨ÕýÒòΪÈç´Ë£¬ÊµÏֿɱä²ÎÊýµÄº¯ÊýÖ»ÄÜʹÓøõ÷ÓÃÔ¼¶¨£©¡£ÁíÍ⣬ÔÚº¯ÊýÃûÐÞÊÎÔ¼¶¨·½ÃæÒ²ÓÐËù²»Í¬¡£

    _cdeclÊÇCºÍC£«£«³ÌÐòµÄȱʡµ÷Ó÷½Ê½¡£Ã¿Ò»¸öµ÷ÓÃËüµÄº¯Êý¶¼°üº¬Çå¿Õ¶ÑÕ»µÄ´úÂ룬ËùÒÔ²úÉúµÄ¿ÉÖ´ÐÐÎļþ´óС»á±Èµ÷ÓÃ_stdcallº¯ÊýµÄ´ó¡£º¯Êý²ÉÓôÓÓÒµ½×óµÄѹջ·½Ê½¡£VC½«º¯Êý±àÒëºó»áÔÚº¯ÊýÃûÇ°Ãæ¼ÓÉÏÏ»®Ïßǰ׺¡£ÊÇMFCȱʡµ÷ÓÃÔ¼¶¨¡£

    3¡¢__fastcallµ÷ÓÃÔ¼¶¨ÊÇ¡°ÈË¡±ÈçÆäÃû£¬ËüµÄÖ÷ÒªÌØµã¾ÍÊǿ죬ÒòΪËüÊÇͨ¹ý¼Ä´æÆ÷À´´«ËͲÎÊýµÄ£¨Êµ¼ÊÉÏ£¬ËüÓÃECXºÍEDX´«ËÍǰÁ½¸öË«×Ö£¨DWORD£©»ò¸üСµÄ²ÎÊý£¬Ê£ÏµIJÎÊýÈÔ¾É×ÔÓÒÏò×óѹջ´«ËÍ£¬±»µ÷Óõĺ¯ÊýÔÚ·µ»ØÇ°ÇåÀí´«ËͲÎÊýµÄÄÚ´æÕ»£©£¬ÔÚº¯ÊýÃûÐÞÊÎÔ¼¶¨·½Ã棬ËüºÍǰÁ½Õß¾ù²»Í¬¡£

    _fastcall·½Ê½µÄº¯Êý²ÉÓüĴæÆ÷´«µÝ²ÎÊý£¬VC½«º¯Êý±àÒëºó»áÔÚº¯ÊýÃûÇ°Ãæ¼ÓÉÏ"@"ǰ׺£¬ÔÚº¯ÊýÃûºó¼ÓÉÏ"@"ºÍ²ÎÊýµÄ×Ö½ÚÊý¡£     

    4¡¢thiscall½ö½öÓ¦ÓÃÓÚ¡°C++¡±³ÉÔ±º¯Êý¡£thisÖ¸Õë´æ·ÅÓÚCX¼Ä´æÆ÷£¬²ÎÊý´ÓÓÒµ½×óѹ¡£thiscall²»Êǹؼü´Ê£¬Òò´Ë²»Äܱ»³ÌÐòÔ±Ö¸¶¨¡£

    5¡¢naked call²ÉÓÃ1-4µÄµ÷ÓÃÔ¼¶¨Ê±£¬Èç¹û±ØÒªµÄ»°£¬½øÈ뺯Êýʱ±àÒëÆ÷»á²úÉú´úÂëÀ´±£´æESI£¬EDI£¬EBX£¬EBP¼Ä´æÆ÷£¬Í˳öº¯ÊýʱÔò²úÉú´úÂë»Ö¸´ÕâЩ¼Ä´æÆ÷µÄÄÚÈÝ¡£naked call²»²úÉúÕâÑùµÄ´úÂë¡£naked call²»ÊÇÀàÐÍÐÞÊηû£¬¹Ê±ØÐëºÍ_declspec¹²Í¬Ê¹Óá£

    ¹Ø¼ü×Ö __stdcall¡¢__cdeclºÍ__fastcall¿ÉÒÔÖ±½Ó¼ÓÔÚÒªÊä³öµÄº¯Êýǰ£¬Ò²¿ÉÒÔÔÚ±àÒë»·¾³µÄSetting...\C/C++ \Code GenerationÏîÑ¡Ôñ¡£µ±¼ÓÔÚÊä³öº¯ÊýǰµÄ¹Ø¼ü×ÖÓë±àÒë»·¾³ÖеÄÑ¡Ôñ²»Í¬Ê±£¬Ö±½Ó¼ÓÔÚÊä³öº¯ÊýǰµÄ¹Ø¼ü×ÖÓÐЧ¡£ËüÃǶÔÓ¦µÄÃüÁîÐвÎÊý·Ö±ðΪ/Gz¡¢/GdºÍ/Gr¡£È±Ê¡×´Ì¬Îª/Gd£¬¼´__cdecl¡£

    ÒªÍêȫģ·ÂPASCALµ÷ÓÃÔ¼¶¨Ê×ÏȱØÐëʹÓÃ__stdcallµ÷ÓÃÔ¼¶¨£¬ÖÁÓÚº¯ÊýÃûÐÞÊÎÔ¼¶¨£¬¿ÉÒÔͨ¹ýÆäËü·½·¨Ä£·Â¡£»¹ÓÐÒ»¸öÖµµÃÒ»ÌáµÄÊÇWINAPIºê£¬Windows.hÖ§³Ö¸Ãºê£¬Ëü¿ÉÒÔ½«³öº¯Êý·­Òë³ÉÊʵ±µÄµ÷ÓÃÔ¼¶¨£¬ÔÚWIN32ÖУ¬Ëü±»¶¨ÒåΪ__stdcall¡£Ê¹ÓÃWINAPIºê¿ÉÒÔ´´½¨×Ô¼ºµÄAPIs¡£
×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
3Â¥2005-12-31 17:15:34
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zsglly

ľ³æ (ÖøÃûдÊÖ)

2)Ãû×ÖÐÞÊÎÔ¼¶¨

1¡¢ÐÞÊÎÃû(Decoration name)

¡°C¡±»òÕß¡°C++¡±º¯ÊýÔÚÄÚ²¿£¨±àÒëºÍÁ´½Ó£©Í¨¹ýÐÞÊÎÃûʶ±ð¡£ÐÞÊÎÃûÊDZàÒëÆ÷ÔÚ±àÒ뺯Êý¶¨Òå»òÕßÔ­ÐÍʱÉú³ÉµÄ×Ö·û´®¡£ÓÐЩÇé¿öÏÂʹÓú¯ÊýµÄÐÞÊÎÃûÊDZØÒªµÄ£¬ÈçÔÚÄ£¿é¶¨ÒåÎļþÀïÍ·Ö¸¶¨Êä³ö¡°C++¡±ÖØÔغ¯Êý¡¢¹¹Ô캯Êý¡¢Îö¹¹º¯Êý£¬ÓÖÈçÔÚ»ã±à´úÂëÀïµ÷Óá°C¡±¡±»ò¡°C++¡±º¯ÊýµÈ¡£

ÐÞÊÎÃûÓɺ¯ÊýÃû¡¢ÀàÃû¡¢µ÷ÓÃÔ¼¶¨¡¢·µ»ØÀàÐÍ¡¢²ÎÊýµÈ¹²Í¬¾ö¶¨¡£

2¡¢Ãû×ÖÐÞÊÎÔ¼¶¨Ëæµ÷ÓÃÔ¼¶¨ºÍ±àÒëÖÖÀà(C»òC++)µÄ²»Í¬¶ø±ä»¯¡£º¯ÊýÃûÐÞÊÎÔ¼¶¨Ëæ±àÒëÖÖÀàºÍµ÷ÓÃÔ¼¶¨µÄ²»Í¬¶ø²»Í¬£¬ÏÂÃæ·Ö±ð˵Ã÷¡£

    a¡¢C±àÒëʱº¯ÊýÃûÐÞÊÎÔ¼¶¨¹æÔò£º

__stdcallµ÷ÓÃÔ¼¶¨ÔÚÊä³öº¯ÊýÃûǰ¼ÓÉÏÒ»¸öÏ»®Ïßǰ׺£¬ºóÃæ¼ÓÉÏÒ»¸ö¡°@¡±·ûºÅºÍÆä²ÎÊýµÄ×Ö½ÚÊý£¬¸ñʽΪ_functionname@number¡£

__cdeclµ÷ÓÃÔ¼¶¨½öÔÚÊä³öº¯ÊýÃûǰ¼ÓÉÏÒ»¸öÏ»®Ïßǰ׺£¬¸ñʽΪ_functionname¡£
   
__fastcallµ÷ÓÃÔ¼¶¨ÔÚÊä³öº¯ÊýÃûǰ¼ÓÉÏÒ»¸ö¡°@¡±·ûºÅ£¬ºóÃæÒ²ÊÇÒ»¸ö¡°@¡±·ûºÅºÍÆä²ÎÊýµÄ×Ö½ÚÊý£¬¸ñʽΪ@functionname@number¡£

    ËüÃǾù²»¸Ä±äÊä³öº¯ÊýÃûÖеÄ×Ö·û´óСд£¬ÕâºÍPASCALµ÷ÓÃÔ¼¶¨²»Í¬£¬PASCALÔ¼¶¨Êä³öµÄº¯ÊýÃûÎÞÈκÎÐÞÊÎÇÒÈ«²¿´óд¡£

    b¡¢C++±àÒëʱº¯ÊýÃûÐÞÊÎÔ¼¶¨¹æÔò£º

__stdcallµ÷ÓÃÔ¼¶¨£º
          1¡¢ÒÔ¡°?¡±±êʶº¯ÊýÃûµÄ¿ªÊ¼£¬ºó¸úº¯ÊýÃû£»
          2¡¢º¯ÊýÃûºóÃæÒÔ¡°@@YG¡±±êʶ²ÎÊý±íµÄ¿ªÊ¼£¬ºó¸ú²ÎÊý±í£»
          3¡¢²ÎÊý±íÒÔ´úºÅ±íʾ£º
             X--void £¬
             D--char£¬
             E--unsigned char£¬
             F--short£¬
             H--int£¬
             I--unsigned int£¬
             J--long£¬
             K--unsigned long£¬
             M--float£¬
             N--double£¬
             _N--bool£¬
             ....
             PA--±íʾָÕ룬ºóÃæµÄ´úºÅ±íÃ÷Ö¸ÕëÀàÐÍ£¬Èç¹ûÏàͬÀàÐ͵ÄÖ¸ÕëÁ¬Ðø³öÏÖ£¬ÒÔ¡°0¡±´úÌæ£¬Ò»¸ö¡°0¡±´ú±íÒ»´ÎÖØ¸´£»
          4¡¢²ÎÊý±íµÄµÚÒ»ÏîΪ¸Ãº¯ÊýµÄ·µ»ØÖµÀàÐÍ£¬ÆäºóÒÀ´ÎΪ²ÎÊýµÄÊý¾ÝÀàÐÍ,Ö¸Õë±êʶÔÚÆäËùÖ¸Êý¾ÝÀàÐÍǰ£»  
          5¡¢²ÎÊý±íºóÒÔ¡°@Z¡±±êʶÕû¸öÃû×ֵĽáÊø£¬Èç¹û¸Ãº¯ÊýÎÞ²ÎÊý£¬ÔòÒÔ¡°Z¡±±êʶ½áÊø¡£

    Æä¸ñʽΪ¡°?functionname@@YG*****@Z¡±»ò¡°?functionname@@YG*XZ¡±£¬ÀýÈç
          int Test1£¨char *var1,unsigned long£©-----¡°?Test1@@YGHPADK@Z¡±
          void Test2£¨£©                       -----¡°?Test2@@YGXXZ¡±

__cdeclµ÷ÓÃÔ¼¶¨£º
¹æÔòͬÉÏÃæµÄ_stdcallµ÷ÓÃÔ¼¶¨£¬Ö»ÊDzÎÊý±íµÄ¿ªÊ¼±êʶÓÉÉÏÃæµÄ¡°@@YG¡±±äΪ¡°@@YA¡±¡£

__fastcallµ÷ÓÃÔ¼¶¨£º
¹æÔòͬÉÏÃæµÄ_stdcallµ÷ÓÃÔ¼¶¨£¬Ö»ÊDzÎÊý±íµÄ¿ªÊ¼±êʶÓÉÉÏÃæµÄ¡°@@YG¡±±äΪ¡°@@YI¡±¡£

    VC++¶Ôº¯ÊýµÄʡȱÉùÃ÷ÊÇ"__cedcl",½«Ö»Äܱ»C/C++µ÷ÓÃ.
     
Îå¡¢¹ØÓÚDLLµÄº¯Êý£º

    ¶¯Ì¬Á´½Ó¿âÖж¨ÒåÓÐÁ½ÖÖº¯Êý£ºµ¼³öº¯Êý(export function)ºÍÄÚ²¿º¯Êý(internal function)¡£µ¼³öº¯Êý¿ÉÒÔ±»ÆäËüÄ£¿éµ÷Óã¬ÄÚ²¿º¯ÊýÔÚ¶¨ÒåËüÃǵÄDLL³ÌÐòÄÚ²¿Ê¹Óá£

Êä³öº¯ÊýµÄ·½·¨ÓÐÒÔϼ¸ÖÖ£º

1¡¢´«Í³µÄ·½·¨

ÔÚÄ£¿é¶¨ÒåÎļþµÄEXPORT²¿·ÖÖ¸¶¨ÒªÊäÈëµÄº¯Êý»òÕß±äÁ¿¡£Óï·¨¸ñʽÈçÏ£º
entryname[=internalname] [@ordinal[NONAME]] [DATA] [PRIVATE]

ÆäÖУº

entrynameÊÇÊä³öµÄº¯Êý»òÕßÊý¾Ý±»ÒýÓõÄÃû³Æ£»

internalnameͬentryname;

@ordinal±íʾÔÚÊä³ö±íÖеÄ˳ÐòºÅ(index)£»

NONAME½ö½öÔÚ°´Ë³ÐòºÅÊä³öʱ±»Ê¹Ó㨲»Ê¹ÓÃentryname£©£»

DATA±íʾÊä³öµÄÊÇÊý¾ÝÏʹÓÃDLLÊä³öÊý¾ÝµÄ³ÌÐò±ØÐëÉùÃ÷¸ÃÊý¾ÝÏîΪ_declspec(dllimport)¡£

ÉÏÊö¸÷ÏîÖУ¬Ö»ÓÐentrynameÏîÊDZØÐëµÄ£¬ÆäËû¿ÉÒÔÊ¡ÂÔ¡£

¶ÔÓÚ¡°C¡±º¯ÊýÀ´Ëµ£¬entryname¿ÉÒÔµÈͬÓÚº¯ÊýÃû£»µ«ÊǶԡ°C++¡±º¯Êý£¨³ÉÔ±º¯Êý¡¢·Ç³ÉÔ±º¯Êý£©À´Ëµ£¬entrynameÊÇÐÞÊÎÃû¡£¿ÉÒÔ´Ó.mapÓ³ÏñÎļþÖеõ½ÒªÊä³öº¯ÊýµÄÐÞÊÎÃû£¬»òÕßʹÓÃDUMPBIN /SYMBOLSµÃµ½£¬È»ºó°ÑËüÃÇдÔÚ.defÎļþµÄÊä³öÄ£¿é¡£DUMPBINÊÇVCÌṩµÄÒ»¸ö¹¤¾ß¡£

Èç¹ûÒªÊä³öÒ»¸ö¡°C++¡±À࣬Ôò°ÑÒªÊä³öµÄÊý¾ÝºÍ³ÉÔ±µÄÐÞÊÎÃû¶¼Ð´Èë.defÄ£¿é¶¨ÒåÎļþ¡£

2¡¢ÔÚÃüÁîÐÐÊä³ö

¶ÔÁ´½Ó³ÌÐòLINKÖ¸¶¨/EXPORTÃüÁîÐвÎÊý£¬Êä³öÓйغ¯Êý¡£
×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
4Â¥2005-12-31 17:16:01
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 300·Ö£¬²ÄÁÏ£¬Çóµ÷¼Á£¬Ó¢Ò»Êý¶þ +5 ³¬ÔÞµÄ 2026-03-24 5/250 2026-03-24 21:07 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 0854AI CV·½ÏòÕÐÊÕµ÷¼Á +3 ÕÂСÓã567 2026-03-23 3/150 2026-03-24 20:25 by Íô£¡£¿£¡
[¿¼ÑÐ] 291Çóµ÷¼Á +3 HanBeiNingZC 2026-03-24 3/150 2026-03-24 16:34 by barlinike
[¿¼ÑÐ] Ò»Ö¾Ô¸211 ³õÊÔ270·Ö Çóµ÷¼Á +5 ¹ÈÓêÉϰ¶ 2026-03-23 6/300 2026-03-24 16:32 by laoshidan
[¿¼²©] É격26Äê +4 °Ë6°Ë68 2026-03-19 4/200 2026-03-24 15:49 by СBenºÇºÇ
[¿¼ÑÐ] 284Çóµ÷¼Á +10 Zhao anqi 2026-03-22 10/500 2026-03-24 00:08 by Equinoxhua
[¿¼ÑÐ] Ò»Ö¾Ô¸¹ú¿Æ¹ý³ÌËù081700£¬274Çóµ÷¼Á +3 ÈýË®ÑÐ0Ë®Á¢·½ 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[¿¼ÑÐ] ²ÄÁÏר˶ӢһÊý¶þ306 +8 z1z2z3879 2026-03-18 8/400 2026-03-23 20:49 by baobaoye
[¿¼ÑÐ] 303Çóµ÷¼Á +4 ԪϦԪ 2026-03-20 4/200 2026-03-23 19:00 by macy2011
[¿¼ÑÐ] 291 Çóµ÷¼Á +4 »¯¹¤2026½ì±ÏÒµÉ 2026-03-21 5/250 2026-03-23 16:46 by »¯¹¤2026½ì±ÏÒµÉ
[¿¼ÑÐ] ÇóÀÏʦÊÕÎÒ +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖÐÄÏ»¯Ñ§£¨0703£©×Ü·Ö337Çóµ÷¼Á +9 niko- 2026-03-19 10/500 2026-03-22 16:08 by ColorlessPI
[¿¼ÑÐ] 286Çóµ÷¼Á +10 Faune 2026-03-21 10/500 2026-03-21 23:34 by 314126402
[¿¼ÑÐ] 266Çóµ÷¼Á +3 ÍÛºôºßºôºß 2026-03-20 3/150 2026-03-21 16:46 by barlinike
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤£¨0856£©304Çó BÇø µ÷¼Á +3 Çñgl 2026-03-21 3/150 2026-03-21 13:47 by lature00
[¿¼ÑÐ] 22 350 ±¾¿Æ985Çóµ÷¼Á£¬ÇóÀϵÇÊÕÁô +3 ÀîéóÄÐ003 2026-03-20 3/150 2026-03-21 13:28 by ²«»÷518
[¿¼ÑÐ] »ª¶«Ê¦·¶´óѧ-071000ÉúÎïѧ-293·Ö-Çóµ÷¼Á +3 Ñо¿ÉúºÎÑþÃ÷ 2026-03-18 3/150 2026-03-21 01:30 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏѧÇóµ÷¼Á +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[¿¼ÑÐ] Çóµ÷¼Á +3 eation27 2026-03-20 3/150 2026-03-20 19:32 by JourneyLucky
[¿¼ÑÐ] 085410È˹¤ÖÇÄÜר˶317Çóµ÷¼Á£¨0854¶¼¿ÉÒÔ£© +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by ²»168
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û