extern "C" ÔĶÁ±Ê¼Ç zz
·¢ÐÅÈË: RoachCock (·´¶¯Ñ§ÊõȨÍþ), ÐÅÇø: CPlusPlus
±ê Ìâ: extern "C" ÔĶÁ±Ê¼Ç
·¢ÐÅÕ¾: ˮľÉçÇø (Fri Mar 7 00:22:47 2008), Õ¾ÄÚ
±¾ÒÔΪºÜ¼òµ¥£¬×ÐϸÔĶÁÁËһϠC++ ±ê×¼£¬·¢ÏÖÄÚÈÝ»¹²»ÉÙ¡£×ܽáÁËһϡ£
Òªµã£º
º¯ÊýÀàÐÍ£¬º¯ÊýÃû£¬±äÁ¿Ãû¾ßÓÐÓïÑÔÁ´½ÓÐÔ£¬language linkage¡£
ÓïÑÔÁ´½ÓÐÔ¿ÉÄÜ»áÓ°Ïìµ½Ãû×ÖÒÔ¼°µ÷ÓÃÔ¼¶¨µÈ£¬ÓÉʵÏÖ¾ö¶¨¡£
C++ ĬÈϵÄÓïÑÔÁ¬½ÓÐÔÊÇ C++ ÓïÑÔÁ´½ÓÐÔ¡£
ÓïÑÔÁ´½ÓÐÔ½ö×÷ÓÃÓÚº¯ÊýÀàÐÍ£¬º¯ÊýÃû£¬±äÁ¿Ãû¡£
²»Í¬ÓïÑÔÁ´½ÓÐԵĺ¯ÊýÀàÐÍÊDz»Í¬µÄÀàÐÍ£¬¼´±ãÆäÓàµÄµØ·½¶¼Ïàͬ¡£
ÓïÑÔÁ´½ÓÐÔÓÃÁ´½ÓÐÔ¹æ¸ñ£¨linkage-specification£©À´ÉùÃ÷£¬·ÖÓÐÎÞ´óÀ¨ºÅÁ½ÖÖÐÎʽ¡£
extern string-literal { declaration-seq opt }
extern string-literal declaration;
ËùÓеÄʵÏÖ¶¼±ØÐëÖ§³Ö "C" ºÍ "C++" Á´½ÓÐÔ¡£
Á´½ÓÐÔ¹æ¸ñÔÊÐíǶÌ×£¬´Ëʱ×îÄÚ²ãµÄÄǸöÆð×÷Ó㬵«ÊDz¢²»½¨Á¢×÷ÓÃÓò¡£
extern "C" { extern "C++" { class A{}; } }
extern "C" { class B:A{};}
ÒòΪ²»ÊÇ×÷ÓÃÓò£¬B ¿ÉÒÔ¿´µ½ A
Èç¹ûCÁ´½ÓÐÔÊ©¼Óµ½C++Àà³ÉÔ±ºÍ³ÉÔ±º¯ÊýµÄÀàÐÍ£¬ºöÂÔCÁ´½ÓÐÔ£¬µ«ÊÇÆäÓàµÄµØ·½ÒÀÈ»ÓÐЧ£¬±ÈÈç³ÉÔ±º¯ÊýµÄ²ÎÊý¡£
±ÈÈ磺
extern "C" { class A{ void f(void (*p)()){} }; }
A ²»ÊǺ¯ÊýºÍ±äÁ¿£¬Ã»ÓÐÓïÑÔÁ´½ÓÐÔ
f ÊÇ C++ ³ÉÔ±º¯Êý£¬ºöÂÔËùÖ¸¶¨µÄ C Á´½ÓÐÔ£¬Èç¹ûÔÚÍâ²ãûָ¶¨±ðµÄ£¬¾ÍÊÇ
C++Á´½ÓÐÔ¡£
p ¾ßÓÐ C Á´½ÓÐÔ¡£
³ýÁËC++Á´½ÓÐԵĺ¯ÊýÍ⣬ͬһ¸öº¯Êý²»´øÁ´½ÓÐÔ¹æ¸ñµÄÉùÃ÷µÄº¯Êý²»ÄÜÔçÓÚ´øµÄ¡£
Èç¹ûÇ°ÃæÉùÃ÷ÁË´øÁ´½ÓÐÔ¹æ¸ñµÄÐÎʽ£¬ºóÃæÓÖ³öÏÖÁ˲»´øµÄÐÎʽ£¬²»ÊÜÓ°Ïì¡£
±ÈÈç extern "C" void foo(); void foo(); ÊÇ¿ÉÒԵ쬷´¹ýÀ´²»ÐС£
µ«ÊÇ extern void foo(); extern "C++" void foo(); ¿ÉÒÔ¡£
ÌØ¶¨Ãû×ÖµÄ C ÓïÑÔÁ´½ÓÐԵĺ¯Êý×î¶àÖ»ÄÜÓÐÒ»¸ö£¬¼´±ã·ÅÔÚ²»Í¬µÄ namespace À
Ò²ÊÇͬһ¸
Ïà¹ØÎĵµ£º
ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread programmi ......
±í´ïʽµÄ¸±×÷ÓÃ
ÔËËã·ûµÄÓÅÏȼ¶Óë½áºÏÐԹ涨Á˱í´ïʽÖÐÏàÁÚÁ½¸öÔËËã·ûµÄÔËËã´ÎÐò£¬µ«¶ÔÓÚ˫Ŀ
ÔËËãµÄ²Ù×÷Êý£¬C++ûÓй涨ËûÃǵļÆËã´ÎÐò¡£ÀýÈ磬¶ÔÓÚ±í´ïʽ£º
exp1 + exp2;
ÏȼÆËã exp1 »¹ÊÇ exp2£¿²»Í¬µÄ±àÒëÆ÷Óв»Í¬µÄ×ö·¨¡£
ÔÚÊýѧÉÏ£¬¶ÔÓÚ˫ĿÔËËã·û£¬²»ÂÛÏȼÆËãÄÄÒ»¸ö²Ù×÷Êý£¬ÒªÇó×îÖÕ¼ÆËã½á¹ûÒ»Ñù¡£
ÔÚ C++ ......
ÎÊÌ⣺ÓÃJ2ME×ö»ùÓÚÊÖ»úµÄC/SģʽÓÎÏ·µÄÁ÷³Ì
²é¿´¸ÃÎÊÌâÍêÕûÄÚÈÝÈç¹û¿ÉÒÔ Çë½éÉÜÏ·þÎñÆ÷ºÍ¿Í»§¶ËµÈ·½±ãµÄÄÚÈݻشð£ºÕâЩÔÚ°Ù¶ÈÉϲ»ºÃÎÊ£¬È¥CSDNÎÊÓÃʲôÓïÑÔ×ö¶¼ÊÇÒ»ÑùµÄ£¬ÄãÓÃJ2ME×ö×ÔÈ»ÊÇ¿ÉÄÜÒªÔÚÊÖ»úÉÏÓ㬿´ÄãҪͨ¹ýÀ¶ÑÀ»¹ÊÇGPRS£¬µ«ÊDZà³ÌÉϱ¾ÖÊÇø±ð²»´ó£¬µ×²ã¶¼ÊÇ͸Ã÷µÄ¡£ÈçºÎ½¨Á¢Á¬½Ó£¬Í¨ÐÅÕâЩӦ¸ÃÃ÷°×°É£¬ ......
´ò¿ªÎļþ»òÕß³ÌÐò
1¡¢ShellExecute(0,"open","c:\\abc.exe","","",SW_SHOW);
2¡¢WinExec("c:\\a.exe",SW_SHOW);
3¡¢system("dir c:\\");
¹Ø±ÕÎļþ
m_hwnd = FindWindows("Notepad","a.txt-¼Çʱ¾");
SendMessage(m_hwnd,WM_SYSCOMMAND,SC_CLOSE,0);
Òþ²ØDOS´°¿Ú
#pragma comment( linker, "/subsystem:\"windows\" ......