Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

extern "C"µÄ×÷ÓÃ


Ò»¡¢ÐÞÊÎÃû£¨Decorated Name£©
C/C++³ÌÐòÖеĺ¯ÊýÔÚÄÚ²¿ÊÇͨ¹ýÐÞÊÎÃûÀ´±êʶµÄ¡£ÐÞÊÎÃûÊÇÔÚº¯Êý¶¨Òå»òÔ­ÐͱàÒë½×¶ÎÓɱàÒëÆ÷´´½¨×Ö·û´®¡£µ±ÄãÔÚLINKµÈ¹¤¾ßÖÐÒªÖ¸¶¨Ò»¸öº¯ÊýÃûʱ£¬»áÓõ½ÐÞÊÎÃû¡£
1¡¢Ê¹ÓÃÐÞÊÎÃû£º
´ó¶àÊýÇé¿öÏ£¬Äã²»±ØÖªµÀº¯ÊýµÄÐÞÊÎÃûÊÇʲô¡£Á¬½ÓÆ÷µÈ¹¤¾ßͨ³£¶¼ÄÜ´¦Àíº¯ÊýδÐÞÊεÄÃû×Ö¡£È»¶ø£¬ÔÚÓÐЩÇé¿öÏ£¬Äã¿ÉÄÜÐèÒªÖ¸¶¨º¯ÊýµÄÐÞÊÎÃû¡£¶ÔÓÚC++ÖØÔØº¯ÊýºÍÌØ¶¨µÄ³ÉÔ±º¯Êý£¨È磺¹¹Ô캯ÊýºÍÎö¹¹º¯Êý£©£¬Äã±ØÐëÖ¸¶¨ÕâЩº¯ÊýµÄÐÞÊÎÃû£¬ÒÔ±ãÁ¬½ÓÆ÷µÈ¹¤¾ßÄܹ»Æ¥ÅäÃû×Ö¡£Í¬Ê±£¬ÄãÒ²±ØÐëÔÚÄÇЩÒýÓÃc»òc£«£«º¯ÊýÃûµÄ»ã±àÔ´ÎļþÖÐʹÓÃÐÞÊÎÃû¡£
2¡¢²é¿´ÐÞÊÎÃû£º
Èç¹ûÄã±àÒëÁËÒ»¸öÔ´Îļþ£¬¸ÃÔ´ÎļþÖаüº¬Á˺¯Êý¶¨Òå»òÔ­ÐÍ£¬Äã¿ÉÒÔ»ñµÃº¯ÊýµÄÐÞÊÎÃûÐÎʽ¡£
(1)ÓñàÒëÆ÷ÁÐ±í£¨compiler listing£©À´²é¿´£º
   (i)ͨ¹ý½«ÁбíÎļþÀàÐͱàÒëÆ÷Ñ¡Ïî(/FA[c|s]) ÉèÖÃΪÏÂÃæÖеÄÒ»ÖÖ£¬À´²úÉúÁбíÎļþ£ºAssembly with Machine Code (/FAc); Assembly with Source Code (/FAs); Assembly, Machine Code, and Source (/FAcs).
   (ii)ÔÚ²úÉúµÄÁбíÎļþÖУ¬ÕÒµ½°üº¬Î´¾­ÐÞÊεĺ¯Êý¶¨ÒåµÄÐС£
   (iii)²éÕÒÇ°ÃæÒ»ÐС£PROC NEAR ÃüÁî±êǩǰ¾ÍÊǺ¯ÊýÃû¾­¹ýÐÞÊκóµÄÐÎʽ¡£
(2)ʹÓÃDUMPBIN¹¤¾ßÀ´²é¿´£º
  ÔÚ.OBJ»ò.LIBÉÏÔËÐÐ DUMPBIN£¬Ê¹ÓÃ/SYMBOLSÑ¡Ïî¡£ÔÚÊä³öÖвéÕÒδ¾­ÐÞÊεĺ¯Êý¶¨Òå¡£ºóÃæ¸ú×ŵľÍÊǾ­¹ýÐÞÊεĺ¯ÊýÃû£¬ÓÃÔ²À¨ºÅÀ¨ÆðÀ´µÄ¡£
¶þ¡¢Ìæ´úÁ¬½Ó˵Ã÷£º
Èç¹ûÔÚc++Öбàдһ¸ö³ÌÐòÐèÒªÓõ½cµÄ¿â£¬ÄǸÃÈçºÎ£¿Èç¹ûÕâÑùÉùÃ÷Ò»¸öcº¯Êý£º
void f(int a,char b);
c++±àÒëÆ÷¾Í»á½«Õâ¸öÃû×Ö±ä³ÉÏàÓ¦µÄÐÞÊÎÃû£¬±ÈÈ磺?f@@YAXHD@Z¡£
È»¶ø£¬c±àÒëÆ÷±àÒëµÄ¿âµÄÄÚ²¿º¯ÊýÃû£¨Á¬½ÓÆ÷ʹÓã©ÊÇÍêÈ«²»Í¬µÄ¡£ÕâÑù£¬µ±c++Á¬½ÓÆ÷Á¬½ÓcµÄº¯Êý¿âʱ£¬½«»á²úÉúÄÚ²¿Ê¹Óú¯Êý²»Æ¥Åä¡£
¹Ê£¬c++ÖÐÌṩÁËÒ»¸öÌæ´úÁ¬½Ó˵Ã÷(alternate linkage specification)£¬ËüÊÇͨ¹ýÖØÔØextern¹Ø¼ü×ÖÀ´ÊµÏֵġ£
externºó¸úÒ»¸ö×Ö·û´®À´Ö¸¶¨ÏëÉùÃ÷µÄº¯ÊýµÄÁ¬½ÓÀàÐÍ£¬ºóÃæÊǺ¯ÊýÉùÃ÷,±ÈÈ磺
 extern "C" void f(int a,char b);
ÕâÑù£¬¾ÍÊǸæËß±àÒëÆ÷ÊÇcÁ¬½Ó£¬ÕâÑù¾Í²»»áת»»º¯ÊýÃûÁË¡£´ËÀýÖУ¬±àÒëºóµÄÄÚ²¿º¯ÊýÃûÊÇ_f¡£


Ïà¹ØÎĵµ£º

¹ØÓÚC/C++ÔËÐÐÆÚ¿â


CÔËÐÐʱ¿âº¯ÊýºÍAPIº¯ÊýÓÐÊ²Ã´Çø±ðºÍÁªÏµÄØ£¿
CÔËÐÐʱ¿âº¯ÊýÊÇÖ¸CÓïÑÔ±¾Ê¡Ö§³ÖµÄһЩ»ù±¾º¯Êý£¬Í¨³£ÊÇ»ã±àÖ±½ÓʵÏÖµÄ
¡£   
APIº¯ÊýÊDzÙ×÷ϵͳÌṩ¸øÓû§·½±ãÉè¼ÆÓ¦ÓóÌÐòµÄº¯Êý£¬ÊµÏÖÒ»Ð©ÌØ¶¨µÄ¹¦ÄÜ£¬APIº¯ÊýÒ²ÊÇCÓïÑԵĺ¯Êý
ʵÏֵġ£
ËûÃÇÖ®¼äÇø±ðÊÇ£ºAPIº¯ÊýÊÇÕë¶Ô²Ù×÷ϵͳµÄ£¬CÓïÑÔÔËÐÐʱº¯ÊýÔòÊ ......

C/C++ÓïÑÔ±à³ÌÐÞÑø£¨×ª£©

ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£

±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————

ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡ ......

³¹µ×¸ã¶¨CÖ¸Õ룭º¯ÊýÃûÓ뺯ÊýÖ¸Õë

º¯ÊýÃûÓ뺯ÊýÖ¸Õë
Ò» ͨ³£µÄº¯Êýµ÷ÓÃ
    Ò»¸öͨ³£µÄº¯Êýµ÷ÓõÄÀý×Ó£º
//×ÔÐаüº¬Í·Îļþ
void MyFun(int x);    //´Ë´¦µÄÉêÃ÷Ò²¿Éд³É£ºvoid MyFun( int );
int main(int argc, char* argv[])
{
   MyFun(10);     //ÕâÀïÊǵ÷ÓÃMy ......

C/C++³ÌÐòÔ±³£¼ûÃæÊÔÌâÉîÈëÆÊÎö


1.ÒýÑÔ   ±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº­¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û-¡£
 Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½Á ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ