ÄãÊÇÌìʹ£¬Ä㳯ÎÒÒªÊ²Ã´ÄØ£¿
来源: BlogBus 原始链接: http://www.blogbus.com:80/blogbus/blog/index.php?blogid=13010&pg=2&cat= 存档链接: https://web.archive.org/web/20041123204326id_/http://www.blogbus.com:80/blogbus/blog/index.php?blogid=13010&pg=2&cat=
ÄãÊÇÌìʹ£¬Ä㳯ÎÒÒªÊ²Ã´ÄØ£¿ Ììʹ˵£º¡°ÎÒÒªÄã¸øÎҵģ¬ÊÇÄãµÄ¿ìÀÖ£¡¡± C/C++¡¢UNIX (9) ACEÁ¬ÔØ (5) ĞÄÇéÈÕ¼Ç (7) ¶ÁÊé±Ê¼Ç (1) perlѧϰ (0) : [1] [2] [3] [4] [5] 2004-05-15 00:04 CÓïÑÔµ¥Ôª²âÊÔ¿ò¼Ü£Check ËäÈ»ÔÚUNIXÉÏÓÃCÓïÑÔ×ö¿ª·¢ÒѾÓĞÒ»¶Îʱ¼äÁË£¬µ«ÊÇÎÒ²»µÃ²»³ĞÈÏ£¬×Ô¼ºµ¥Ôª²âÊÔ×öµÄ²¢²»ºÃ¡£Ç¡ºÃ×î½üÓĞеĿª·¢ÈÎÎñ£¬¾ÍѧϰÁËһЩ¹ØÓÚ²âÊÔÇı¶¯¿ª·¢µÄ֪ʶ£¬×¼±¸¸Ä½ø×Ô¼ºµÄµ¥Ôª²âÊÔ¡£XP±à³ÌÒѾĞËÆğºÃÒ»¶Îʱ¼äÁË£¬Ò²ĞγÉÁ˺ܶàÓÅĞãµÄµ¥Ôª²âÊÔ¿ò¼Ü£¬ÀıÈ磺JUnit£¬Ïë±ØÊ¹ÓÃJAVAµÄÅóÓÑ£¬¶Ô¸Ã²âÊÔ¿ò¼ÜÒѾºÜÊìϤÁË¡£ÎҼǵá¶³ÌĞòÔ±¡·ÔÓÖ¾Ò²ÓĞÒ»ÆÚרÃÅÒÔTDD×÷ΪרÌâ¡£Æäʵ£¬ÎÒÕæµÄºÃÏÛĽJAVA³ÌĞòÔ±^^£¬ËûÃÇ×ÜÊÇÓи÷ÖÖ¸÷ÑùµÄÓÅĞãµÄ¹¤¾ß¿ÉÒÔÓᣰ¥¡£¡£¡££¬ÁÙÔ¨ÏÛÓ㣬²»ÈçÍ˶ø½áÍø¡£CppUnitÊÇÒ»¸öÓÅĞãµÄC++µ¥Ôª²âÊÔ¿ò¼Ü£¬Òò´Ë£¬ËüÓ¦¸ÃÒ²¿ÉÒÔ×÷ΪCÓïÑԵĵ¥Ôª²âÊÔ¿ò¼Ü¡£µ«ÊÇ£¬ÕâÀïÎÒûÓĞÑ¡ÔñCppUnit£¬¶øÊÇÖ±½ÓÑ¡ÔñÁËÒ»¸öÕë¶ÔCÓïÑԵĵ¥Ôª²âÊÔ¿ò¼ÜCheck¡£¶ÔÓÚCÓïÑÔ²ÉÓÃÄÄÖÖµ¥Ôª²âÊÔ¿ò¼Ü±È½ÏºÃ£¬ÎÒʵÔÚûÓĞÕâ·½ÃæµÄ¾Ñé^^¡£Èç¹ûÄÇλÅóÓѶÔCÓïÑÔµ¥Ôª²âÊÔ·½ÃæÓоÑ飬ÎÒÕæĞĵÄÏ£ÍûÄãÄܸøÓèÎÒ°ïÖú£¬ÕâÀïÎÒÏÈллÁË^^£¡¾ÍÏóÎÒ˵µÄÄÄÑù£¬ÒòΪÎÒûÓкܶà²âÊÔÏÈĞĞÕâÑùµÄ¾Ñ飬ËùÒÔÕâÀïÎÒÖ»ÊǽéÉÜCheckµÄ»ù±¾Ê¹Ó÷½·¨£¬´î¼üµ¥Ôª²âÊÔ»·¾³µÄÒ»¸ö¹ı³Ì¡£CheckÏà¹ØÖªÊ¶ÊÇÎÒ½ñÌìÉÏÎç²ÅѧµÄ£¬ÍíÉϾÍ×ܽáÒ»ÏÂĞ´Á˳öÀ´£¬ÎÒÊǵäĞ͵ÄÏÖѧÏÖÂô^^¡£ ÎÒÕâÀï½éÉÜÒ»ÏÂÒ»¸öʵÏÖ¼Ó·¨¹¦ÄܵijÌĞò£¨¾ÍÊÇ£¬¸ø¶¨2¸öÊı£¬¸Ã³ÌĞò·µ»ØÕâÁ½¸öÊıµÄºÍ£¬¹»¼òµ¥°É^^£©µ¥Ôª²âÊÔ¹ı³Ì¡£Ê×ÏÈÎÒ½¨Á¢ÁË3¸öĿ¼£ºinclude¡¢add¡¢unit_test¡£ÔÚincludeĿ¼Àï°üº¬uni_test.h£¨¸ÃÎļş×÷ÓÃÏÂÃæÎÒ»á½éÉÜ£©¡¢add.h¡¢Check.h£¨¸ÃÎļşÊǸòâÊÔ¿ò¼ÜÔ´´úÂëÖеÄÒ»¸öÍ·Îļş£¬ÔÚ½¨Á¢µ¥Ôª²âÊԵĹı³ÌÖĞ£¬ĞèÒª°üº¬¸ÃÍ·Îļş£©¡£ÔÚunit_test.hºÍadd.hÌîÈëһЩ×î»ù±¾´úÂë uni_test.h #ifndef UNIT_TEST_H #define UNIT_TEST_H #endif #include "Check.h" #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif #endif ÔÚÉÏÃæ´úÂëÖĞÎÒÃǰüº¬ÁËCheck.hÍ·Îļş¡£ÔÚadd.hÍ·ÎļşÖĞ£¬³ıÁ˲»°üº¬¸ÃÍ·ÎļşÍ⣬»ù±¾´úÂëÊÇÀàËÆµÄ¡£ ½Ó×Å£¬ÎÒÃÇÔÚaddĿ¼ÀィÁ¢add.cÎļş£¬²¢ÔÚÆäÖĞ#include "add.h"¡£ ÔÚunit_testĿ¼ÖĞ£¬ÎÒÃǽ¨Á¢test_add.cÎļş£¨ÓÃÀ´±àĞ´²âÊÔÓÃÀıµÄ,²¢ÔÚÆäÖаüÀ¨Check.h£©¡¢test_main.cÎļş£¨¸ÃÎļş×÷ÓÃÏÂÃæ»á½éÉÜ,ÕâÀïÃæ°üº¬mainº¯Êı£©ºÍlibcheck.a£¨¸Ã¾²Ì¬¿âÊDZàÒëcheck¿ò¼ÜÔ´´úÂëÉú³ÉµÄ£¬ÔÚ±àÒë²âÊÔÓÃÀıµÄ¹ı³ÌÖĞĞèÒªÁ¬½Ó¸Ã¿â¡£ ok£¬Íòʾ߱¸ÁË£¬¿ªÊ¼Ğ´²âÊÔÓÃÀı°É¡£ÔÚtest_add.cÎļşÖмÓÈë²âÊÔÓÃÀı START_TEST(test_add) { fail_unless(add(2, 3) == 5, "god, 2+3!=5"); } END_TEST ͨ¹ıÉÏÃæÕâÖÖ·½Ê½£¬ÎÒÃǶ¨ÒåÁËÒ»¸ö²âÊÔÓÃÀı¡£¸Ã²âÊÔÓÃÀıÃû×ÖΪtest_add¡£²¢ÇÒÎÒÃÇͨ¹ıºêfail_unlessÕâÖÖ·½Ê½£¬Ô¤ÆÚadd(2, 3)»á·µ»Ø5£¬Èç¹û²»·µ»Ø5£¬ÄÇôÎÒÃǽ«Êä³ögod, 2+3!=5ÕâÑùµÄĞÅÏ¢¡£Í¬Ê±£¬¸Ã²âÊÔÓÃÀıûÓб»PASS^^£¬¶øÊÇFAIL¡£ ÏÖÔÚÎÒÃDZàÒëtest_add.c¡¢test_main.cºÍadd.c£¬ÕâÑùµ±È»±àÒë²»¹ıÈ¥£¬ÒòΪÎÒÃÇ»¹Ã»ÓĞдʵÏÖ´úÂë¡£ÔÚadd.c¼ÓÈëÈçÏÂʵÏÖ´úÂ룺 int add(int i, int j) { return 0; } ÔÚadd.hÀïÃæÒ²¼ÓÈëÏàÓ¦µÄº¯ÊıÔĞÍ¡£ ÕâÀïÎÒÃÇÔÚʵÏÖ´úÂëÀï·µ»Ø0£¬ÊǹÊÒâʹ²âÊÔÓÃÀı²»Í¨¹ı£¬ÒòΪÔÚTDDÀïÃæ£¬½²¾¿²»Í¨¹ı/ͨ¹ı/ÖØ¹¹Õâôһ¸ö³ÖĞø¹ı³Ì¡£ ÏÖÔÚÎÒÃDZàÒë´úÂ룬ÕâÑùµ±È»ÄܱàÒë¹ıÁË¡£µ«ÊÇ£¬µ½Ä¿Ç°Î»ÖÃÎÒÃÇ»¹Ã»ÓĞÔËĞĞÎÒÃǵIJâÊÔÓÃÀı¡£ok£¬ÊÇÔÚtest_add.cÀïÃæÌí¼ÓÎÒÃǵIJâÊÔÓÃÀıµÄʱºòÁË£º Suite *make_add_suite(void) { Suite *s = suite_create("Add");//½¨Á¢²âÊÔÌ×¼ş£¨ÎÒ²»ÖªµÀ£¬Õâô·Òë¶Ô²»¶Ô£¿^^£© TCase *tc_add = tcase_create("add");//½¨Á¢²âÊÔÓÃÀı¼¯ suite_add_tcase(s, tc_add);//°Ñ²âÊÔÓÃÀı¼¯¼ÓÈëµ½Ì×¼şÖĞ tcase_add_test(tc_add, test_add);//°ÑÎÒÃǵIJâÊÔÓÃÀı¼ÓÈëµ½²âÊÔ¼¯ÖĞ return s; } ÔÚunit_test.hÖмÓÈ뺯ÊıÔĞÍ£ºSuite *make_add_suite(void)£» ok£¬ÊÇʱºò½éÉÜtest_main.cµÄʱºòÁË£¬¸ÃÎļş´úÂëÈçÏ£º #include "unit_test.h" #include <stdlib.h> int main(void) { int n; SRunner *sr; sr = srunner_create(make_add_suite());//°ÑSuite¼ÓÈëµ½SRunnerÀïÃæ srunner_run_all(sr, CK_NORMAL);//ÔËĞĞËùÓвâÊÔÓÃÀı n = srunner_ntests_failed(sr); srunner_free(sr); return (n==0)? EXIT_SUCCESS: EXIT_FAILURE; } ÎÒÏë´ÏÃ÷µÄÅóÓÑÒ²²Âµ½ÁË£¬ÎªÊ²Ã´ÔËĞвâÊÔÓÃÀıµÄÖ÷º¯ÊıºÍ²âÊÔÓÃÀı±¾Éí·Ö±ğ·Åµ½²»Í¬Ô´ÎļşµÄÔÒòÁË¡£¾ÍÊÇΪÁËÒÔºóÔÙÌí¼Ó²âÊÔÓÃÀıµÄʱºò·½±ã£¬ÀıÈ磺ÎÒÏÖÔÚÓÖÔö¼ÓÁ˼õÊısub³ÌĞò£¬ÄÇôΪÁ˱£³ÖÇåÎúÆğ¼û£¬Õë¶ÔsubµÄ²âÊÔÓ¦¸Ãµ¥¶À×éÖ¯Ô´Îļştest_sub.c£¬ÏÖÔÚÖ»ĞèÒªÔÚtest_main.cÖеÄSRunnerÖмÓÈësubµÄSuite¼´¿É¡£ ÏÖÔÚ±àÒë²âÊÔÓÃÀıÏà¹ØÎļş£¬ÔËĞĞ¡£¾Í»á¿´¼ûÎÒÃǵIJâÊÔÓÃÀıÇé¿ö¡£¶àÉÙͨ¹ı£¬¶àÉÙûÓĞͨ¹ı£¬Ã»ÓĞͨ¹ıµÄ²âÊÔÓÃÀıFAILÔÚÄÇÀïµÈµÈÕâĞ©ĞÅÏ¢¡£ ͨ¹ıÉÏÃæµÄ½éÉÜ£¬¿ÉÒÔ·¢ÏÖCheck²âÊÔ¿ò¼ÜºÍÆäËü²âÊÔ¿ò¼Ü£¬ÀıÈçCppUnitµÄʹÓ÷½Ê½²î²»¶à¡£Æäʵ£¬µ¥´¿´ÓʹÓòâÊÔ¿ò¼Ü±¾ÉíµÄ½Ç¶ÈÉÏÀ´¿´£¬ÊǷdz£¼òµ¥µÄ¡£ÄѵÄÊÇ£¬²âÊÔÏÈĞо¿¾¹¸ÃÔõôÀ´×ö£¬ÔõôÑùÀ´×öºÃ£¬µ±³ÌĞòĞèÒª·ÃÎÊÊı¾İ¿âʱºò£¬ÎÒÃǸÃÔõôÑùÀ´Íê³É²âÊÔÓÃÀıµÄ±àĞ´£¬ÕâĞ©¶¼ÊÇÄѵ㡣ÎÒ¾ö¶¨ÁË£¬Ã÷Ìì³öÈ¥ÂòÒ»±¾¡¶²âÊÔÇı¶¯¿ª·¢¡·¿´¿´£¬È»ºó×¢ÒâÔÚ±àÂë¹ı³ÌÖĞ£¬²ÉÓòâÊÔÏÈĞеķ½Ê½¡£µÈÎÒÓĞÁËÕâ·½ÃæµÄ¾Ñ飬ÎÒ»áÄóöÀ´ºÍ´ó¼Ò¹²Ïí£¬Ò²»¶ÓÒѾÓĞÕâ·½Ãæ¾ÑéµÄĞֵܸø³ö×Ô¼ºµÄĞĵã¬Ö¸ÕıÎÒÉÏÃæÎÄÕÂÖеĴíÎó£¬ÈÃÎá±²´ÓÖĞÊÜÒæ£¡£¡ zhxlanjuan @ 00:04 | ÔĶÁÈ«ÎÄ | ÆÀÂÛ(0) | ÒıÓÃ(Trackback0) 2004-05-08 22:26 ACE Service Configurator¿ò¼ÜºÍCÓïÑԵġ°·´É䡱 ACEµÄ·şÎñÅäÖÿò¼Ü£¬ÊÇÒ»¸ö·Ç³£Ç¿´óµÄ¿ò¼Ü£¬²ÉÓÃËü¿ÉÒÔʹӦÓøù¾İÏàÓ¦ÅäÖÃÎļş½øĞĞÓĞÑ¡ÔñµÄ·şÎñÆô¶¯£¬Ó¦ÓÿÉÒÔÖØĞÂÅäÖÃÆä·şÎñ£¬¶øÎŞĞèÖØĞ±àÒë»òÊÇÖØĞÂÆô¶¯Ó¦Óñ¾Éí¡£¶ÔÓÚµçĞÅÁìÓòÖеÄÓ¦Ó㬸ÿò¼Ü¹¦ÄÜȷʵÊǷdz£°ôµÄÓŵ㡣µ«ÊÇ£¬¶ÔÓÚ¾²Ì¬ÀàĞ͵ķşÎñ£¬Ò²¾ÍÊÇ˵ÏàÓ¦µÄº¯ÊıÊǾ²Ì¬µÄ±àÒëµ½Ó¦ÓÃÖеģ¬ACEÒ»°ãÔÚÖ÷³ÌĞòÖж¼ÒªÓÃACE_STATIC_SVC_REQUIREºÍACE_STATIC_SVC_REGISTERÀ´ÏòACE_Service_RepositoryµÇ¼Ç¾²Ì¬·şÎñ£¬Õâ¾ÍÔì³ÉÁËÖ÷³ÌĞòºÍ·şÎñÖ®¼ä»¹´æÔÚÒ»¶¨µÄñîºÏ¡£µ±È»£¬¶ÔÓÚ¾²Ì¬·şÎñÕâô×öûÓĞÈκÎÎÊÌâ¡£µ«ÊÇ£¬Õâ¶à¶àÉÙÉÙÈÃÎÒ¾õµÃ²»Ë¬£¬ÕâÀïÎÒÊÇÒ»¸ö¼«¶ËÖ÷ÒåÕß^^£¬ÎÒÏëÈÃÎÒµÄÖ÷³ÌĞòÍêÈ«ÊÇͨ¹ıÅäÖÃÎļşÀ´Æô¶¯¾²Ì¬·şÎñµÄ£¬ÔÚ´úÂëÉÏÖ÷³ÌĞòºÍ·şÎñÍêȫûÓĞñîºÏ£¡ ÔÚJAVAÀ¿ÉÒÔͨ¹ıÒ»¸öÀàµÄÃû×ÖÀ´»ñµÃ¸ÃÀà±¾Éí¡£ÎÒ²»Ì«ÊìϤJAVA^^£¬JAVAÖеķ´Éä´ó¸ÅÊÇÕâ¸öÒâ˼¡£ÎªÁËÂú×ãÉÏÃæµÄÒªÇó£¬Ö÷³ÌĞòÍêȫͨ¹ıÅäÖÃÎļşÀ´Æô¶¯¾²Ì¬·şÎñ£¬Ò²¾ÍÊÇ˵ÎÒÃÇÒª¸ù¾İº¯ÊıµÄÃû×ÖÀ´µÃµ½ÏàÓ¦µÄº¯Êı£¨¶ÔÓÚͨ¹ı¹²Ïí¿â¶¯Ì¬¼ÓÔØµÄ·şÎñ£¬ÎÒÃÇ¿ÉÒÔͨ¹ıdlopen,dlsymµÈº¯Êı£¬ºÜÈİÒ׵ĴӺ¯ÊıÃû×Öµ¼³öº¯Êı±¾Éí¡£ACEµ×²ãʵÏÖ£¬Ò²ÊÇͨ¹ıÕâÑùµÄ·½Ê½£¬À´¶¯Ì¬¼ÓÔØ·şÎñµÄ£©£¬Òò´ËÎÒÔÚ±êÌâÀïĞ´ÁËCÓïÑԵġ°·´É䡱^^¡£ÔÚCºÍC++ÀÎÒÃÇ´ÓÓïÑԵĽǶÈÉÏ£¬ÎÒÃÇûÓа취ÕâÑù×ö¡£ Ë×»°Ëµ£ºÌìÎŞ¾øÈË֮·¡£Ã»ÓĞC×ö²»µ½µÄÊÂÇ飨CÊÇÄÜ×öµ½£¬µ«ÊǺܶàʱºòÎÒ×ö²»µ½£¬ÒòΪÎÒµÄˮƽ»¹ºÜ²î^^£©¡£ÕâÀïÎÒÃÇ¿ÉÒÔͨ¹ı½âÎöELFÎļş¸ñʽ£¬ºÜÇáËɵĴӺ¯ÊıµÄÃû×ÖÀ´µÃµ½º¯Êı±¾Éí£¬´úÂëÈçÏ£¨¸Ã´úÂëÖ»ÊÇÒ»¸ö¼òµ¥µÄÑİʾ£©£º ÎļşÃû£ºparse.c #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <libelf.h> #include <gelf.h> void test(int i) { printf("oh, come on baby\n"); printf("the i is %d\n",i); } int main(int argc, char **argv) { Elf *elf = NULL; Elf_Scn *scn = NULL; GElf_Shdr shdr; Elf_Data *data = NULL; int fd, ii, count; void (func)(int); elf_version(EV_CURRENT); fd = open(argv[1], O_RDONLY); elf = elf_begin(fd, ELF_C_READ, NULL); while ((scn = elf_nextscn(elf, scn)) != NULL) { gelf_getshdr(scn, &shdr); if (shdr.sh_type == SHT_SYMTAB) { / found a symbol table, go print it. / break; } } data = elf_getdata(scn, NULL); count = shdr.sh_size / shdr.sh_entsize; for (ii=0; ii < count; ++ii) { GElf_Sym sym; gelf_getsym(data, ii, &sym); if(!strcmp("test", elf_strptr(elf, shdr.sh_link, sym.st_name))){ func = (void ()(int))(unsigned long)(sym.st_value& 0xffffffff);//µÃµ½º¯ÊıÃû×Ö¶ÔÓ¦µÄº¯ÊıµØÖ· func(7); } } elf_end(elf); close(fd); } ±àÒë:gcc -o parse parse.c -lelf ÔËĞĞ£ºparse parse ͨ¹ıÉÏÃæÕâÖÖÊֶΣ¬ÎÒÃÇ´Óº¯ÊıµÄÃû×ֵõ½ÁËÏàÓ¦µÄº¯Êı¡£¸Ã´úÂëÔÚsolarisÉϱàÒëÔËĞĞͨ¹ı¡£ÍøÂçÉÏͨ¹ı½âÎöELF½øĞгÌĞòhackµÄÀı×Ó²»ÉÙ£¬ÎÒÕâÀï¼òµ¥µÄ½âÎöELF£¬ÄÃÀ´ÕıµÀÖ®Óã¬Ò²¿ÉνÊÇÃûÃÅÕıÅÉÁË¡££¨±ğÈÔ¼¦µ°Ñ½^^£© Æäʵ£¬ºÜ¶à¶«Î÷¾ÍÊÇÒ»ÖÖ˼·£¬ÎÒûÓĞ¿´ACEµÄʱºò£¬´ÓÀ´Ã»ÓĞÏëµ½¹ıͨ¹ıÅäÖÃÎļşÀ´½øĞĞ·şÎñµÄÑ¡ÔñÆô¶¯¡£µ±ÎÒ¿´ÁËACEºó£¬¾Í˵£º¡°à¸£¬ÔÀ´³ÌĞò¿ÉÒÔÕâÑù¡±£¬²¢ÇÒͨ¹ı×Ô¼ºµÄ·¢É¢Ë¼Î¬£¬¿ÉÒÔ½øÒ»²½¿¼ÂdzöһЩ¶«Î÷¡£°¥¡£¡£¡££¬¿´À´×Ô¼ºÒªÑ§µÄ¶«Î÷»¹ºÜ¶àѽ£¬×Ô¼º»¹ÊÇÒ»¸öÄۻƹÏ^^¡£ zhxlanjuan @ 22:26 | ÔĶÁÈ«ÎÄ | ÆÀÂÛ(2) | ÒıÓÃ(Trackback0) 2004-05-07 21:54 ·³ Õâ¸öʱºòÊÇ×î·³µÄ£¬ÒòΪÃ÷Ìì¾ÍÒªÉϰàÁË£¬²»ÄÜ˯ÀÁ¾õÀ²£¡ »ØÏë7Ìì¼ÙÆÚ£¬¿´¿´ÎÒ¶¼×öÁËʲô£º µÚÒ»Ì죺ºÍÒ»¸öͬÊÂÒ»Æğ³öÈ¥£¬Âò³ÔµÄ¶«Î÷£¬ÎªÅÀɽ×ö×¼±¸¡£´ó½ÖÉϺÃÈÈÄÖ£¬ÓкܶàÉ̼ҵĻ£¬¿´Á˺öàMMÌøÎè^^¡£ µÚ¶şÌ죺ÆğÁ˸ö´óÔ磬ȥÅÀÁËǧɽ¡£Ç§É½µÄÂÃÓξ°µãÕæ¡°ºÚ¡±Ñ½£¬ÎÒÃÇÏÂɽ¾¹È»ÒªÁË3¿éÇ®£¬shit£¡ ¸ü¿ÉÆøµÄÊÇÄǸö¡°Îå·ğ¶¥¡±£¬ÎÒÃÇ×ø×ÅÀ³µÉÏÈ¥µÄ£¬·¢ÏÖÉÏÃæÉ¶¶¼Ã»ÓĞ¡£ÏëÏÂÀ´¾ÍÄÑÀ²£¬ÓĞ300¶àºÅÈËÔÚÄÇÀïÅŶÓ×øÀ³µ¡£×îºóÎҺͼ¸¸öĞÖµÜ×é³ÉÁËÒ»¸ö¡°¸ÒËÀ¶Ó¡±£¬³É½Â·ÏÂÀ´µÄ£¬²»¹ıµ¹ÊÇͦÓĞÒâ˼µÄ£¬ÕâÊÇÄÇÌìÅÀɽ×îºÃÍæµÄÁË£¬Òª²»È»Ç§É½Ö®ÂÃ̫ʧ°ÜÁË£¡£¡ µÚÈıÌ죺°ï×ÅÒ»¸öҪȥ±±¾©¹¤×÷µÄ¸çÃÇ£¬ÊÕʰ¶«Î÷£¬È¥»ğ³µÕ¾ÍĞÔË£¬ÍíÉϺͼ¸¸ö¸çÃÇÓÖ³ÔÁËÒ»¶ÙÉ¢»ï·¹¡£ µÚËÄ¡¢Îå¡¢Áù¡¢ÆßÌ죺Õ⼸ÌìÉú»îÌ«²»¹æÂÉÁË£¬¹ı×Å¡°Öí¡±Ò»ÑùµÄÉú»î£¬¼¸ºõ¾ÍûÓгöÎİ¡£ÍíÉÏ˯µÄºÃÍí£¬°×Ì켸ºõ¾Í²»Æğ´²ÁË¡£ºÃ¼¸Ì춼ûÓĞË¢ÑÀ£¬ÓĞÒ»Ìì¾õµÃ×ìÀïʵÔÚÄÑÊܵIJ»ĞĞÁË£¬²ÅȥˢÁËÒ»ÏÂ^^¡£ÌıÌıÒôÀÖ£¬¿´¿´Ê飬Éú»îÕæÊÇã«Ò⣡Õâ¶Îʱ¼ä£¬µ½Ò²³äʵ£¬°Ñ¡¶DOOMÆôÊÀ¼¡·¡¢¡¶³ÌĞòÔ±ĞŞÁ¶Ö®µÀ¡·¶ÁÍêÁË¡£¡¶DOOMÆôÊÀ¼¡·£¬ÕæÊÇÒ»±¾ºÃÊé¡£¶ÁÍêÁË£¬¸Ğ¾õÈÈѪ·ĞÌÚ£¬Ê²Ã´Ê±ºò°³Ò²ÄÜ´ïµ½ÄǸö¾³½ç£¬µ½Ê±ºò°³Ò²ºÃ´óÑÔ²»²ÑµÄºÍ¸Õѧ³ÌĞòµÄĞ¡µÜµÜ£¬Ğ¡ÃÃÃÃ˵£º¡°³ÌĞòÔ±ÊÇ×îºÃµÄÖ°Òµ¡±^^¡£¡¶³ÌĞòÔ±ĞŞÁ¶Ö®µÀ¡·»¹ÊÇÄÇôÓнÀÍ·£¬ÎÒ×¼±¸ÔÙÖØĞ¶ÁÒ»±é£¬ÔÙϸϸƷζһ·¬¡£²»¹ı£¬ÎÒÒѾÊܵ½¸ÃÊéµÄÓ°ÏìÁË£ºÄãÓ¦¸ÃѧһÃÅÎı¾²Ù×İÓïÑÔ¡£°³Á¢¿Ì°ÑÎİÀïÒ»¸öĞÖµÜÄDZ¾¡¶perlÓïÑÔÈëÃÅ¡··Á˳öÀ´£¬Ò»¿ÚÆø¶ÁÁËÒ»°ë£¬¸Ğ¾õperlÓïÑÔ»¹ÕæÊÇˬ£¬ÎÒËûÂèµÄÒѾ°®ÉÏËıÀ²^^¡£ºÃ£¬ÎÒ¾ö¶¨ÁË£¬ÎÒҪѧºÃperl£¬±Ï¾¹Ğ´¡¶³ÌĞòÔ±ĞŞÁ¶Ö®µÀ¡·Ò²ÊÇ´óʦ£¬ËûÃǵϰ°³»¹ÊÇĞŵģ¡ ÎûÎû£¬Ëæ±ãÂÒĞ´ÁËһͨ£¬½Ó´ËÊÕÊÕĞÄ¡£Ã÷Ìì¾ÍÉϰàÁË,°¥¡£¡£¡££¬²»ÖªµÀ»á²»»áµÃ½Úºó×ÛºÏÖ¢£¡ zhxlanjuan @ 21:54 | ÔĶÁÈ«ÎÄ | ÆÀÂÛ(0) | ÒıÓÃ(Trackback0) 2004-04-25 00:34 ACEµÄÔ´Âë»®·ÖºÍlibrary subsetting ǰ¼¸ÆªÎÄÕÂÒ²Ìáµ½¹ı£¬ACEµÄËùÓĞÔ´ÎļşºÍÍ·Îļş¶¼ÔÓÂÒ¶ÑÔÚÁËACE_wrappers/aceĿ¼Ï¡£ÕâÑùµÄ´úÂë×éÖ¯·½Ê½¸øÑ§Ï°ACE´øÀ´Á˺ܴóµÄÀ§ÄÑ£¬ºÜ¶àÅóÓÑÔÚ¿´µ½aceĿ¼ÏÂÅÓ´óµÄ´úÂëµÄʱºò£¬¼¸ºõ¾ÍʧȥÁËѧϰACEµÄĞÅĞÄ^^¡£Òò´Ë£¬ÎÒÃÇÓбØÒª¶ÔACEµÄ´úÂë½øĞĞÖØĞÂ×éÖ¯£¬ÒÔ½µµÍѧϰÇúÏß¡£ÏÂÃæ£¬ÎÒ½«¸ø³öÎÒ¶ÔACEÔ´ÂëµÄ»®·Ö·½·¨¡£Æäʵ£¬ÎÒÒ²ÊǸÕѧϰACEûÓжà¾Ã£¬¶ÔACEµÄÁ˽⻹ÉõÉÙ£¬ËùÒÔ£¬ÎÒµÄÔ´Âë»®·½Ê½·¨²»Ò»¶¨Ê®·ÖÕıÈ·£¬ÕâÀï¹²Ïí³öÀ´£¬½ö¹©´ó¼Ò²Î¿¼¡£ Æäʵ£¬ÔÚACEµÄ°ïÖúÎĵµÀACE-subsets.htmlºÍACE-categories.html£¬ÕâÁ½¸öÎĵµ¶ÔÖ¸µ¼ACEµÄÔ´Âë»®·ÖÆğµ½Á˺ܴóµÄ×÷Ó㬷ñÔò£¬ÎÒ¸Õ¸Õ½Ó´¥ACE£¬¾ÍÏë¶ÔÆä½øĞĞÔ´Âë»®·Ö£¬ÊDz»¿ÉÄÜÍê³ÉµÄ¡£ACE-subsets.html£¬Õâ¸öÎĵµÖ÷Òª½éÉÜÁËACEµÄlibrary subsetting¡£Õı³£Çé¿öÏ£¬ÔÚ±àÒëÍêACEºó£¬Ö»»á²úÉúÒ»¸öACEµÄ¿â¡£ÎÒÃÇ¿ÉÒÔ¸ù¾İ¸ÃÎĵµµÄ½éÉÜ£¬¼òµ¥µÄĞŞ¸ÄÒ»ÏÂMakefile£¬¾Í¿ÉÒÔ¶ÔACEµÄ¿â½øĞĞ×Ó¼¯»¯£¬ÎÒÃÇ¿ÉÒÔ±àÒë³öOS¡¢ThreadµÈÕâÑùµÄ×Ó¿â¡£ACE-categories.html£¬Õâ¸öÎĵµ¶ÔACEÖеĴúÂë½øĞĞÁËһЩ¹¦ÄÜÉϵķÖÀà¡£¾ßÌå´ó¼Ò¿ÉÒÔÏêϸµÄ²Î¿¼Ò»ÏÂÕâÁ½¸öÎĵµ£¬ÕâÁ½¸öÎĵµ¶ÔѧϰACE»¹ÊÇÓĞÒ»¶¨µÄ°ïÖúµÄ¡£ ÔÚACEµÄÔ´´úÂëĿ¼aceÏ£¬ÎÒ½«½¨Á¢ºÜ¶à×ÓĿ¼£¬À´¶ÔACEµÄ´úÂë½øĞа´¹¦ÄÜ·ÖÀࣺ ACE_OS£º¸ÃĿ¼Àï°üº¬µÄ´úÂëÊÇOSµÄAPIµÄwrapper£¬Ò²¾ÍÊÇACEµÄOSÊÊÅä²ã£» °üº¬´úÂ룺 ARGV.cpp OS_Memory.cpp Argv_Type_Converter.cpp OS_QoS.cpp Base_Thread_Adapter.cpp OS_String.cpp Basic_Types.cpp OS_TLI.cpp Copy_Disabled.cpp OS_Thread_Adapter.cpp Env_Value_T.cpp Sched_Params.cpp Handle_Set.cpp Template_Instantiations.cpp Makefile Thread_Hook.cpp OS.cpp Time_Value.cpp OS_Dirent.cpp OS_Errno.cpp OS_Log_Msg_Attributes.cpp ACE_Codec£º¸ÃĿ¼°üº¬µÄÊÇACEµÄ¸÷ÖÖ±àÂëÀàĞ͵Ĵ¦Àí´úÂ룬Ŀǰֻ°üº¬ÁËBASE64±àÂëµÄ´¦Àí£» °üº¬´úÂ룺Codecs.cpp Makefile ACE_Connection£º¸ÃĿ¼°üº¬µÄÊÇACEÖеÄAcceptor-Connector¿ò¼Ü´úÂëºÍÒ첽ͨѶÀà´úÂ룻 °üº¬´úÂ룺Acceptor.cpp Connector.cpp Asynch_Acceptor.cpp Makefile Asynch_Connector.cpp POSIX_Asynch_IO.cpp Asynch_IO.cpp Strategies_T.cpp Asynch_IO_Impl.cpp Svc_Handler.cpp Asynch_Pseudo_Task.cpp WIN32_Asynch_IO.cpp Cached_Connect_Strategy_T.cpp Caching_Strategies_T.cpp ACE_Demux£º¸ÃĿ¼°üº¬µÄÊÇACEÖеÄReactorºÍProactor¿ò¼Ü´úÂ룻 °üº¬´úÂ룺Dev_Poll_Reactor.cpp Priority_Reactor.cpp TP_Reactor.cpp Event_Handler.cpp Proactor.cpp TkReactor.cpp Event_Handler_T.cpp QtReactor.cpp WFMO_Reactor.cpp FlReactor.cpp Reactor.cpp WIN32_Proactor.cpp Makefile SUN_Proactor.cpp XtReactor.cpp Msg_WFMO_Reactor.cpp Select_Reactor.cpp POSIX_CB_Proactor.cpp Select_Reactor_Base.cpp POSIX_Proactor.cpp Select_Reactor_T.cpp ACE_IPC£º¸ÃĿ¼°üº¬µÄÊÇACEÖнø³Ì¼äͨѶµÄһЩ·â×°´úÂ룺 °üº¬´úÂ룺ATM_Acceptor.cpp Makefile ATM_Addr.cpp Pipe.cpp ATM_Connector.cpp SPIPE.cpp ATM_Params.cpp SPIPE_Acceptor.cpp ATM_QoS.cpp SPIPE_Addr.cpp ATM_Stream.cpp SPIPE_Connector.cpp DEV.cpp SPIPE_Stream.cpp DEV_Addr.cpp SV_Message.cpp DEV_Connector.cpp SV_Message_Queue.cpp DEV_IO.cpp SV_Semaphore_Complex.cpp FIFO.cpp SV_Semaphore_Simple.cpp FIFO_Recv.cpp SV_Shared_Memory.cpp FIFO_Recv_Msg.cpp Signal.cpp FIFO_Send.cpp TLI.cpp FIFO_Send_Msg.cpp TLI_Acceptor.cpp FILE.cpp TLI_Connector.cpp FILE_Addr.cpp TLI_Stream.cpp FILE_Connector.cpp TTY_IO.cpp FILE_IO.cpp Typed_SV_Message.cpp IOStream.cpp Typed_SV_Message_Queue.cpp IOStream_T.cpp UNIX_Addr.cpp IO_SAP.cpp UPIPE_Acceptor.cpp MEM_Acceptor.cpp UPIPE_Connector.cpp MEM_Addr.cpp UPIPE_Stream.cpp MEM_Connector.cpp XTI_ATM_Mcast.cpp MEM_IO.cpp MEM_SAP.cpp MEM_Stream.cpp ACE_LIB£º¸ÃĿ¼½«°üº¬ACE±àÒëºÃµÄ¸÷¸ö×ӿ⣻ ACE_Logging£º¸ÃĿ¼°üº¬ACEÖеÄÈÕÖ¾´¦ÀíÏà¹Ø´úÂ룻 °üº¬´úÂ룺Dump.cpp Log_Msg_UNIX_Syslog.cpp Dump_T.cpp Log_Record.cpp Log_Msg.cpp Logging_Strategy.cpp Log_Msg_Backend.cpp Makefile Log_Msg_Callback.cpp Trace.cpp Log_Msg_IPC.cpp Log_Msg_NT_Event_Log.cpp ACE_Memory£º¸ÃĿ¼°üº¬ÁËACEÄÚ´æ´¦ÀíÏà¹Ø´úÂ룻 °üº¬´úÂ룺Based_Pointer_Repository.cpp Obstack.cpp Based_Pointer_T.cpp Obstack_T.cpp Makefile PI_Malloc.cpp Malloc.cpp Read_Buffer.cpp Malloc_Allocator.cpp Shared_Memory.cpp Malloc_Instantiations.cpp Shared_Memory_MM.cpp Malloc_T.cpp Shared_Memory_SV.cpp Mem_Map.cpp Memory_Pool.cpp Obchunk.cpp ACE_Misc£ºACEÖĞһЩûÓĞÃ÷È·¹¦ÄÜ·ÖÀàµÄ´úÂ룬ÊôÓÚÔÓÏ °üº¬´úÂ룺CE_Screen_Output.cpp NT_Service.cpp Makefile gethrtime.cpp ACE_Nameservices£º¸ÃĿ¼°üº¬ÁËACEÖĞÃû×Ö·şÎñÏà¹Ø´úÂ룻 °üº¬´úÂ룺 Name_Space.cpp Local_Name_Space.cpp Naming_Context.cpp Local_Name_Space_T.cpp Registry_Name_Space.cpp Makefile Remote_Name_Space.cpp Name_Proxy.cpp Name_Request_Reply.cpp ACE_Sockets£º¸ÃĿ¼°üº¬µÄÊÇACEµÄsocket·â×°´úÂ룻 °üº¬´úÂ룺Addr.cpp SOCK_CODgram.cpp INET_Addr.cpp SOCK_Connector.cpp IPC_SAP.cpp SOCK_Dgram.cpp LOCK_SOCK_Acceptor.cpp SOCK_Dgram_Bcast.cpp LSOCK.cpp SOCK_Dgram_Mcast.cpp LSOCK_Acceptor.cpp SOCK_IO.cpp LSOCK_CODgram.cpp SOCK_SEQPACK_Acceptor.cpp LSOCK_Connector.cpp SOCK_SEQPACK_Association.cpp LSOCK_Dgram.cpp SOCK_SEQPACK_Connector.cpp LSOCK_Stream.cpp SOCK_Stream.cpp Makefile Sock_Connect.cpp Multihomed_INET_Addr.cpp SOCK.cpp SOCK_Acceptor.cpp ACE_Streams£º¸ÃĿ¼°üº¬ÁËACEÖеÄStreamsºÍTask¿ò¼Ü´úÂ룻 °üº¬´úÂ룺CDR_Base.cpp Module.cpp CDR_Stream.cpp Multiplexor.cpp Codeset_IBM1047.cpp Reactor_Notification_Strategy.cpp Codeset_Registry.cpp Stream.cpp Codeset_Registry_db.cpp Stream_Modules.cpp IO_Cntl_Msg.cpp Task.cpp Makefile Task_T.cpp Message_Queue.cpp Message_Queue_T.cpp ACE_Svcconf£º¸ÃĿ¼°üº¬ÁËACEÖеÄService Configurator¿ò¼Ü´úÂ룻 °üº¬´úÂ룺DLL.cpp Service_Types.cpp DLL_Manager.cpp Shared_Object.cpp Dynamic_Service.cpp Svc_Conf.l Dynamic_Service_Base.cpp Svc_Conf.y Makefile Svc_Conf_Lexer_Guard.cpp Parse_Node.cpp Svc_Conf_l.cpp Service_Config.cpp Svc_Conf_y.cpp Service_Manager.cpp XML_Svc_Conf.cpp Service_Object.cpp Service_Repository.cpp Service_Templates.cpp ACE_Threads£º¸ÃĿ¼°üº¬ÁËACEÖеÄÏ̺߳Íͬ²½»úÖÆÏà¹Ø´úÂ룬ÀıÈ磺thread manager; °üº¬´úÂ룺Activation_Queue.cpp Process_Manager.cpp Thread.cpp Atomic_Op.cpp Process_Mutex.cpp Thread_Adapter.cpp Atomic_Op_T.cpp Process_Semaphore.cpp Thread_Control.cpp File_Lock.cpp RW_Process_Mutex.cpp Thread_Exit.cpp Future.cpp Synch.cpp Thread_Manager.cpp Future_Set.cpp Synch_Options.cpp Token.cpp Makefile Synch_T.cpp Process.cpp Test_and_Set.cpp ACE_Timer£º¸ÃĿ¼°üº¬ACEÖкÍʱ¼äÏà¹ØµÄ´úÂ룻 °üº¬´úÂ룺Timer_Heap.cpp Basic_Stats.cpp Timer_Heap_T.cpp High_Res_Timer.cpp Timer_List.cpp Makefile Timer_List_T.cpp Profile_Timer.cpp Timer_Queue.cpp System_Time.cpp Timer_Queue_Adapters.cpp Time_Request_Reply.cpp Timer_Queue_T.cpp Timeprobe.cpp Timer_Wheel.cpp Timeprobe_T.cpp Timer_Wheel_T.cpp Timer_Hash.cpp Timer_Hash_T.cpp ACE_Token£ºTokenÊÇACEÖĞʵÏÖµÄÒ»ÖÖͬ²½»úÖÆ£¬±£Ö¤ÑϸñµÄFIFO»òLIFO²ßÂÔÀ´»ñµÃËø¡£ACEͨ¹ıToken»úÖÆÊµÏÖÁË·Ö²¼Ê½Í¬²½»úÖÆ¡£ °üº¬´úÂ룺Local_Tokens.cpp Token_Collection.cpp Token_Request_Reply.cpp Makefile Token_Invariants.cpp Remote_Tokens.cpp Token_Manager.cpp ACE_Utils£ºACEÖеÄһЩ»ù´¡Êı¾İ½á¹¹ºÍËã·¨µÄ¹¤¾ßÀà´úÂ룻 °üº¬´úÂ룺ACE.cpp Init_ACE.cpp Active_Map_Manager.cpp Intrusive_List.cpp Active_Map_Manager_T.cpp Intrusive_List_Node.cpp Arg_Shifter.cpp Lib_Find.cpp Array_Base.cpp Makefile Auto_IncDec_T.cpp Managed_Object.cpp Auto_Ptr.cpp Map.cpp Cache_Map_Manager_T.cpp Map_Manager.cpp Caching_Utility_T.cpp Map_T.cpp Capabilities.cpp Message_Block.cpp Cleanup_Strategies_T.cpp Message_Block_T.cpp Configuration.cpp Method_Request.cpp Configuration_Import_Export.cpp Node.cpp Connection_Recycling_Strategy.cpp Notification_Strategy.cpp Containers.cpp Object_Manager.cpp Containers_T.cpp Pair.cpp Date_Time.cpp Pair_T.cpp Dirent.cpp RB_Tree.cpp Dirent_Selector.cpp Recyclable.cpp Dynamic.cpp Refcountable.cpp Filecache.cpp Registry.cpp Flag_Manip.cpp SString.cpp Framework_Component.cpp Sample_History.cpp Framework_Component_T.cpp Singleton.cpp Free_List.cpp Stats.cpp Functor.cpp String_Base.cpp Functor_T.cpp String_Base_Const.cpp Get_Opt.cpp Swap.cpp Handle_Ops.cpp Unbounded_Queue.cpp Hash_Cache_Map_Manager_T.cpp Unbounded_Set.cpp Hash_Map_Manager.cpp Unbounded_Set_Ex.cpp Hash_Map_Manager_T.cpp Vector_T.cpp Hash_Map_With_Allocator_T.cpp Hashable.cpp include£º¸ÃĿ¼ÓÖ°üº¬×ÓĿ¼ace£¬Ò²¾ÍÊÇ˵include/ace/Ŀ¼Ï£¬°üº¬ÁËACEµÄËùÓĞÍ·ÎļşºÍ.iÎļş£¬Ö®ËùÒÔÕâÑù×éÖ¯£¬ÊÇÒòΪACEÖеÄÔ´ ÎļşºÍÍ·ÎļşµÄ°üº¬ÎļşµÄ·½Ê½Îª£º#include "ace/OS.h"£¬ËùÒÔ²ÉÓÃÕâÖÖĿ¼½á¹¹·½Ê½À´´æ·ÅÍ·ÎļşºÍ.iÎļş¡£ÕâÀ¶ÔÍ·ÎļşºÍ.i Îļş£¬Ã»ÓнøÒ»²½°´ÕÕ¹¦ÄÜ»®·Ö£¬¾ÍÊÇÒòΪ#include "ace/OS.h"ÕâÖÖ°üº¬·½Ê½£¬Èç¹ûÍ·ÎļşºÍ.iÎļşÒ²°´ÕÕ¹¦ÄÜ»®·Ö£¬ÄÇô´úÂëĞŞ¸Ä Á¿Ï൱´ó£» ͨ¹ıÉÏÃæ¸ø³öµÄĿ¼½á¹¹ºÍÔ´Îļş¹¦ÄÜ»®·Ö¼°Í·Îļş×éÖ¯·½Ê½£¬ÏàĞŶÁÕßÒÔ¿ÉÒÔ×ÔĞжÔACE´úÂë½øĞĞÕûÀíÁË¡£ÔÚʵ¼ÊÕûÀíºÍ±àÒë´úÂëµÄ¹ı³ÌÖĞ£¬ĞèÒªĞŞ¸ÄMakefileºÍACEÍ·ÎļşÖĞÒÔ_T·½Ê½Îªºó׺µÄÍ·Îļş£¬ÀıÈ磺Obstack_T.h£¬ĞèÒªĞŞ¸ÄÀïÃæÄ£°åÔ´Îļş°üº¬Â·¾¶¡£ÎÒ½«ÔÚÏÂһƪÎÄÕÂÖнøĞĞÃèÊö¡£ ÎÒÔÙ´ÎÇ¿µ÷£¬ÉÏÃæACEÔ´Âë»®·Ö·½Ê½£¬²»Ò»¶¨Ê®·ÖÕıÈ·^^£¬Ëæ×ÅÎÒÃÇACEѧϰºÍÀí½âµÄÉîÈ룬ÎÒÃÇ¿ÉÄÜ»á½øĞиü¸Ä¡£Æäʵ£¬ÔÚÎÒÃÇÕûÀíACEÔ´ÎļşµÄʱºò£¬ÎÒÃÇ¿ÉÒÔ½øÒ»²½Á˽âACEµÄ¸÷¸öÔ´Îļş´óÖ¹¦ÄÜ£¬¶ÔÎÒÃÇÒÔºó¸üÉîÈëµÄѧϰ´óÓĞñÔÒæ¡£ zhxlanjuan @ 00:34 | ÔĶÁÈ«ÎÄ | ÆÀÂÛ(4) | ÒıÓÃ(Trackback0) 2004-04-24 22:00 ÎÄÖñ ¿ÉÄÜ´ó¶àÊı³ÌĞòÔ±µÄÉú»îȦ×Ó¶¼±È½ÏĞ¡£¬»ù±¾ÉÏÉú»î¾ÍÊǹ¤×÷£¬¹¤×÷¾ÍÊÇÉú»î¡£ÎÒµÄÉú»î¸üÊÇÕâÑù£¬¾ÍÏñÊÇһ̶¾²¾²µÄË®£¬¶Ô¼¼ÊõÖ´×ŵÄ×·Çó£¬Ö»ÊÇË®ÀïÃæµÄ°µÁ÷£¬Ë®Ã漸ºõ·º²»ÆğÈκÎÁ°äô¡£ ÎÒҲûÓĞÏëµ½£¬Ò»ÅèССµÄÎÄÖñ£¬ÖèÈ»¸øÆ½µÎŞÆæµÄÉú»î´øÀ´ÁË´ºÌì°ãµÄÂÌÉ«£¬Ëü¾ÍÏñÊÇÒ»¸öÀ´Ë®±ßÏ·Ë®µÄ¿É°®µÄÅ®º¢£¬ÈÃÎÒĞÄÇéÕóÕóµ´Ñú¡£½ñÌì¸Õ¸ÕÂòµÄÎÄÖñ£¬Îҷŵ½°ì¹«×ÀÉÏ£¬¾²¾²µÄ¿´Ëü¡£ÏËϸµÄÖ¦¸É£¬Ğ¡Ğ¡µÄÒ¶×Ó£¬ÕæµÄÏóÒ»¸öÎľ²¶øÓÖåîÈõ£¬ÈÃÈËÁ¯°®µÄÅ®º¢¡£ÕâÒ²´ó¸ÅÊÇËüÃû×ÖµÄÀ´Àú¡£ ÅóÓÑ£¬ÄãÊÇ·ñÒ²Ó¦¸Ã×öÒ»ÏÂÀàËÆµÄ³¢ÊÔ£¬¸øºÚ°×µÄ³ÌĞòÔ±Éú»îÌíÉÏһĨµµµÄÂÌ¡£ ÎÒµÄÉú»î£¬³ıÁËÎÒ°®ºÈµÄÂ̲裬ÓÖÓĞÁËËı£ÎÄÖñ£¬ºÃºÃµÄÕÕ¹ËËı£¬½«»á³ÉΪÎÒÒÔºóÉú»îÖØÒªµÄÒ»²¿·Ö¡£ zhxlanjuan @ 22:00 | ÔĶÁÈ«ÎÄ | ÆÀÂÛ(0) | ÒıÓÃ(Trackback0) ÈÕÀú 2004 Äê 11 Ô Sun Mon Tue Wen Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ×î½ü¸üĞ ϲÓDzô°ë UNIX³ÌĞòÉè¼ÆÒÕÊõ CVS°æ±¾¹ÜÀíÖ®³¤½£³öÇÊ µ±Äã°®µÄÈË£¬²»°®ÄãµÄʱºò Ò»ÇнÔÓĞ¿ÉÄÜ£º¶¯Ì¬Ğ޸ÄÄãµÄ³ÌĞò CÓïÑÔµ¥Ôª²âÊÔ¿ò¼Ü£Check ACE Service Configurator¿ò¼ÜºÍCÓïÑԵġ°·´É䡱 ·³ ACEµÄÔ´Âë»®·ÖºÍlibrary subsetting ÎÄÖñ ×îĞÂÆÀÂÛ carol : ^^ ·ÒëµÃºÜºÃ°. looklook : Ö±½Ó·ÖÎöelfÒ²ÊÇ¿. jessecw : °ßÖñÕæÀ÷º¦£¬ÎÒÄ¿. darwin_yuan : ÕâÓëÊÇ·ñÊÇÀÏÍâû. errorter : лл£¡ °Ñ. joachimz : ¿ÉÒÔÊÔÊÔʹÓÃEcli. tather : ÄãºÃ£¬¿´ÁËÄãµÄÎÄ. tather : ÄãºÃ£¬¿´ÁËÄãµÄÎÄ. jcylinder : ºÇºÇ£¬¿´ÁËÄã¹ØÓÚ. robertfang : HI ÎÒĿǰҲÔÚ¿´A. ´æµµ ÎÒµÄÁ´½Ó ·çÖ®¹È