[VC]º¯Êýµ÷ÓÃÔ¼¶¨½âÎö(C/C++)
C/C++º¯Êýµ÷ÓÃÔ¼¶¨ºÍº¯ÊýÃû³ÆÐÞÊιæÔò̽ÌÖ
×÷ÕߣºÐǹ죨oRbIt£©
ʹÓÃC/C++ÓïÑÔ¿ª·¢Èí¼þµÄ³ÌÐòÔ±¾³£Åöµ½ÕâÑùµÄÎÊÌ⣺ÓÐʱºòÊdzÌÐò±àÒëûÓÐÎÊÌ⣬µ«ÊÇÁ´½ÓµÄʱºò×ÜÊDZ¨¸æº¯Êý²»´æÔÚ£¨¾µäµÄLNK
2001´íÎ󣩣¬ÓÐʱºòÊdzÌÐò±àÒëºÍÁ´½Ó¶¼Ã»ÓдíÎ󣬵«ÊÇÖ»Òªµ÷ÓÿâÖеĺ¯Êý¾Í»á³öÏÖ¶ÑÕ»Òì³£¡£ÕâЩÏÖÏóͨ³£ÊdzöÏÖÔÚCºÍC++µÄ´úÂë»ìºÏʹÓõÄÇé¿öÏ»ò
ÔÚC++³ÌÐòÖÐʹÓõÚÈý·½µÄ¿âµÄÇé¿öÏ£¨²»ÊÇÓÃC++ÓïÑÔ¿ª·¢µÄ£©£¬ÆäʵÕâ¶¼ÊǺ¯Êýµ÷ÓÃÔ¼¶¨£¨Calling
Convention£©ºÍº¯ÊýÃûÐÞÊΣ¨Decorated
Name£©¹æÔòÈǵĻö¡£º¯Êýµ÷Ó÷½Ê½¾ö¶¨Á˺¯Êý²ÎÊýÈëÕ»µÄ˳Ðò£¬ÊÇÓɵ÷ÓÃÕߺ¯Êý»¹ÊDZ»µ÷Óú¯Êý¸ºÔðÇå³ýÕ»ÖеIJÎÊýµÈÎÊÌ⣬¶øº¯ÊýÃûÐÞÊιæÔò¾ö¶¨Á˱àÒëÆ÷ʹ
ÓúÎÖÖÃû×ÖÐÞÊη½Ê½À´Çø·Ö²»Í¬µÄº¯Êý£¬Èç¹ûº¯ÊýÖ®¼äµÄµ÷ÓÃÔ¼¶¨²»Æ¥Åä»òÕßÃû×ÖÐÞÊβ»Æ¥Åä¾Í»á²úÉúÒÔÉϵÄÎÊÌâ¡£±¾ÎÄ·Ö±ð¶ÔCºÍC++ÕâÁ½ÖÖ±à³ÌÓïÑԵĺ¯Êýµ÷
ÓÃÔ¼¶¨ºÍº¯ÊýÃûÐÞÊιæÔò½øÐÐÏêϸµÄ½âÊÍ£¬±È½ÏÁËËüÃǵÄÒì֮ͬ´¦£¬²¢¾ÙÀý˵Ã÷ÁËÒÔÉÏÎÊÌâ³öÏÖµÄÔÒò¡£
º¯Êýµ÷ÓÃÔ¼¶¨£¨Calling Convention£©
º¯Êýµ÷ÓÃÔ¼¶¨²»½ö¾ö¶¨ÁË·¢Éúº¯Êýµ÷ÓÃʱº¯Êý²ÎÊýµÄÈëջ˳Ðò£¬»¹¾ö¶¨ÁËÊÇÓɵ÷ÓÃÕߺ¯Êý»¹ÊDZ»µ÷Óú¯Êý¸ºÔðÇå³ýÕ»ÖеIJÎÊý£¬»¹Ô¶ÑÕ»¡£º¯Êýµ÷ÓÃÔ¼¶¨Óкܶ෽
ʽ£¬³ýÁ˳£¼ûµÄ__cdecl£¬__fastcallºÍ__stdcallÖ®Í⣬C++µÄ±àÒëÆ÷»¹Ö§³Öthiscall·½Ê½£¬²»ÉÙC/C++±àÒëÆ÷»¹Ö§³Ö
naked
call·½Ê½¡£Õâô¶àº¯Êýµ÷ÓÃÔ¼¶¨³£³£ÁîÐí¶à³ÌÐòÔ±ºÜÃԻ󣬵½µ×ËüÃÇÊÇÔõô»ØÊ£¬¶¼ÊÇÔÚʲôÇé¿öÏÂʹÓÃÄØ£¿ÏÂÃæ¾Í·Ö±ð½éÉÜÕ⼸ÖÖº¯Êýµ÷ÓÃÔ¼¶¨¡£
1.__cdecl
±àÒëÆ÷µÄÃüÁîÐвÎÊýÊÇ/Gd¡£__cdecl·½Ê½ÊÇC/C++±àÒëÆ÷ĬÈϵĺ¯Êýµ÷ÓÃÔ¼¶¨£¬ËùÓзÇC++³ÉÔ±º¯ÊýºÍÄÇЩûÓÐÓÃ__stdcall»ò
__fastcallÉùÃ÷µÄº¯Êý¶¼Ä¬ÈÏÊÇ__cdecl·½Ê½£¬ËüʹÓÃCº¯Êýµ÷Ó÷½Ê½£¬º¯Êý²ÎÊý°´ÕÕ´ÓÓÒÏò×óµÄ˳ÐòÈëÕ»£¬º¯Êýµ÷ÓÃÕ߸ºÔðÇå³ýÕ»ÖеIJÎÊý£¬ÓÉ
ÓÚÿ´Îº¯Êýµ÷Óö¼ÒªÓɱàÒëÆ÷²úÉúÇå³ý£¨»¹Ô£©¶ÑÕ»µÄ´úÂ룬ËùÒÔʹÓÃ__cdecl·½Ê½±àÒëµÄ³ÌÐò±ÈʹÓÃ__stdcall·½Ê½±àÒëµÄ³ÌÐòÒª´óºÜ¶à£¬µ«ÊÇ
__cdeclµ÷Ó÷½Ê½ÊÇÓɺ¯Êýµ÷ÓÃÕ߸ºÔðÇå³ýÕ»Öеĺ¯Êý²ÎÊý£¬ËùÒÔÕâÖÖ·½Ê½Ö§³Ö¿É±ä²ÎÊý£¬±ÈÈçprintfºÍwindowsµÄAPI
wsprintf¾ÍÊÇ__cdeclµ÷Ó÷½Ê½¡£¶ÔÓÚCº¯Êý£¬__cdecl·½Ê½µÄÃû×ÖÐÞÊÎÔ¼¶¨ÊÇÔÚº¯ÊýÃû³ÆÇ°Ìí¼ÓÒ»¸öÏ»®Ïߣ»¶ÔÓÚC++º¯Êý£¬³ý·ÇÌØ±ðʹ
ÓÃextern
"C"£¬C++º¯ÊýʹÓò»Í¬µÄÃû×ÖÐÞÊη½Ê½¡£
2.__fastcall
±àÒëÆ÷µÄ
Ïà¹ØÎĵµ£º
Àí½âcÖеÄÐòÁеã
http://blog.chinaunix.net/u1/42826/showart_364176.html
ÈÃÎÒÃÇÀ´¿´¿´ÏÂÃæµÄ´úÂ룺
int i=7;
printf(”%d\n”, i++ * i++);
ÄãÈÏΪ»á·µ»ØÊ²Ã´£¿56£¿no¡£ÕýÈ·´ð°¸ÊÇ·µ»Ø 49£¿ºÜ¶àÈË»áÎÊΪʲô£¿ÄѵÀ²»¸Ã´òÓ¡³ö56Âð£¿ÔÚccfaqÖÐÓзdz£Ï꾡µÄ½âÊÍ£¬¸ù±¾ÔÒòÔÚÓÚcÖеÄÐòÁÐ ......
BSS
δ³õʼ»¯µÄÊý¾Ý
DATA
³õʼ»¯µÄÊý¾Ý
TEXT(code)
´úÂë
ÔÚCÖÐÓÐÈ«¾Ö¡¢¾Ö²¿£¨×Ô¶¯±äÁ¿£©ºÍ¾²Ì¬±äÁ¿¡£
È«¾Ö±äÁ¿ÔÚCÓïÑÔÀï±íʾʱ£¬ÔÚº¯ÊýÖ®ÍâµÄ¾ÍÊÇÈ«¾Ö±äÁ¿£¬¼´ÔÚº¯ÊýÍâËùÉêÃ÷µÄ±äÁ¿£»¶ø¾²Ì¬±äÁ¿¿ÉÒÔ·ÅÔÚº¯ÊýÍ⣬Ҳ¿ÉÒÔ·ÅÔÚº¯ÊýÄÚ¡£È«¾Ö±äÁ¿ÓÐÁ½¸ö×÷Ó㺵ÚÒ»£¬µ±ÔÚº¯ÊýÍâÉê ......
@echo off
@echo ╔©©©©©©©©©©©©©©©©©©©©©©©©©©╗
@echo ©¯ ÐÄ Èç Ö¹ Ë® ©¯
@echo ©¯ ©¯
@echo ©¯ DIY ¸ö ÐÔ BAT C ÅÌ ·À ¶¾ Åú ´¦ Àí ©¯
@echo ©¯ ......
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػ ......
Ò»¡¢C/SģʽÓëB/SģʽµÄ±È½Ï·ÖÎö
¡¡¡¡C/SģʽÖ÷ÒªÓɿͻ§Ó¦ÓóÌÐò(Client)¡¢·þÎñÆ÷¹ÜÀí³ÌÐò(Server)ºÍÖмä¼þ(middleware)Èý¸ö²¿¼þ×é³É¡£¿Í»§Ó¦ÓóÌÐòÊÇϵͳÖÐÓû§ÓëÊý¾Ý½øÐн»»¥µÄ²¿¼þ¡£·þÎñÆ÷³ÌÐò¸ºÔðÓÐЧµØ¹ÜÀíϵͳ×ÊÔ´£¬Èç¹ÜÀíÒ»¸öÐÅÏ¢Êý¾Ý¿â£¬ÆäÖ÷Òª¹¤×÷Êǵ±¶à¸ö¿Í»§²¢·¢µØÇëÇó·þÎñÆ÷ÉϵÄÏàͬ×ÊԴʱ£¬¶ÔÕâЩ×ÊÔ´½øÐÐ×î ......