delphiÖÐregister, pascal, cdecl, stdcall, safecall
×¢£º ʹÓôíÎ󣬻òÕßÔڸüӵĵط½Ã»Óмӣ¬¿ÉÄÜ»á³öÏÖ"privileged instruction"´íÎ󣬻òÕßµØÖ··ÃÎÊ´íÎó¡£
³£¼ûµÄµ÷ÓùßÀýÓÐregister, pascal, cdecl, stdcall, safecall¡£º¯ÊýµÄµ÷ÓùÜÀí¾ö¶¨Á˲ÎÊýÈçºÎ´«µÝ¸ø×Ó¹ý³Ì£¬²¢´Ó¶ÑÕ»ÖÐÍ˳ö£¬ÒÔ¼°¼Ä´æÆ÷ÔÚ²ÎÊý´«µÝÖеÄʹÓ㬴íÎóºÍÒì³£µÄ´¦Àí¡£DelphiÖÐĬÈϵĵ÷ÓùßÀýÊÇregister¡£
1) registerºÍpascal£º²ÎÊý´Ó×óÏòÓÒ´«µÝ£¬Ò²¾ÍÊÇ˵×î×ó±ßµÄ²ÎÊý×îÏÈÇóÖµ²¢´«È룬×îÓұߵIJÎÊý×îºóÇóÖµºÍ´«Èë¡£cdecl£¬stdcallºÍsafecallÔò°´´ÓÓÒÏò×ó·½Ïò¡£
2) ¶ÔÓÚ³ýcdeclÖ®ÍâµÄËùÓе÷ÓùßÀý£¬º¯Êý/¹ý³ÌÔÚ·µ»ØµÄʱºòÒª°Ñ¶ÑÕ»ÖеIJÎÊýÍËÕ»¡£¶Ôcdecl¹ßÀý£¬µ÷ÓÃÕßÔÚ±»µ÷ÓõĹý³Ì·µ»ØºóÖ´ÐвÎÊýÍËÕ»²Ù×÷
3) registerµ÷ÓùßÀý×î¶àÄÜÓÃ3¸öCPU¼Ä´æÆ÷À´´«µÝ²ÎÊý£¬¶øÆäËüµ÷ÓùßÀýÖ»ÄÜͨ¹ý¶ÑÕ»À´´«µÝ²ÎÊý
4) safecallµ÷ÓùßÀýʵÏÖÁËÒì³£µÄ·À»ðǽ¡£ÔÚWindowsÉÏʵÏÖÁË¿ç½ø³ÌµÄCOM´íÎó֪ͨ»úÖÆ¡£
5) registerµ÷ÓÃЧÂÊ×î¸ß£¬ÒòΪËü±ÜÃâÁ˶ÑÕ»µÄ´´½¨¡£DelphiÖÐpublishedÊôÐÔ±ØÐëÊÇregister¡£
6) cdecl³£ÓÃÓÚµ÷ÓÃC/C++±àдµÄ¹²Ïí¿âÖеĺ¯Êý£»µ«ÊÇ£¬Èç¹ûÒªµ÷ÓÃÍⲿ´úÂ룬ÄÇôһ°ãÒªÓÃstdcallºÍsafecall
7) ÔÚWindowsÉÏ£¬ÏµÍ³µÄAPI¶¼ÊÇstdcallºÍsafecall£»ÔÚÆäËü²Ù×÷ϵͳÉÏͨ³£ÓÃcdecl£¨×¢Ò⣺stdcall±ÈcdeclЧÂÊÒª¸ß£©
8) ÔÚdual-interface£¨Ë«½Ó¿Ú£©·½·¨ÖбØÐëÓÃsafecall¹ßÀý¡£
9) pascal¹ßÀýÊÇΪÁËÏòºó¼æÈÝ£»near/far/exportÓÃÓÚ16λWindow±à³ÌÖеĺ¯Êýµ÷Óã¬ÔÚ32λµÄÓ¦ÓóÌÐòÖв»·¢»Ó×÷Ó㬽ö½öÊÇΪÁËÏòºó¼æÈÝ¡£
ϱí½øÐÐÁË×ܽ᣺
Calling conventions Parameter order Clean-up Passes parameters in registers£¿
register Left-to-right Routine Yes
pascal Left-to-right Routine No
cdecl Right-to-left Caller No
stdcall Right-to-left Routine No
safecall Right-to-left Routine No
http://blog.sina.com.cn/s/blog_552c78120100hsr9.html
Ïà¹ØÎĵµ£º
boolÊÇLongBoolÀàÐÍ¡£
DelphiÖж¨ÒåÁËËÄÖÖ²¼¶ûÀàÐÍ£ºBoolean£¬ByteBool£¬WordBoolºÍLongBool¡£ºóÃæÈýÖÖ²¼¶ûÀàÐÍÊÇΪÁËÓëÆäËûÓïÑÔ¼æÈݶøÒýÈëµÄ£¬Ò»°ãÇé¿öϽ¨ÒéʹÓÃBooleanÀàÐÍ¡£
ÕâËÄÖÖÀàÐ͵IJ¼¶ûÖµÕ¼ÓÃÄÚ´æµÄÊýÁ¿ÈçÏ£º
Boolean 1 Byte
ByteBool 1 Byte
WordBool 2 Bytes£¨1 Word£©
LongBool 4 Bytes£¨2 Words£©
¶Ô ......
3.2 Óû§µÇ¼·½°¸
ÔÚ½øÈëÒ»¸öϵͳʱ£¬±ØÐëÏÈÔڵǼ´°ÌåÖÐÊäÈëÕýÈ·µÄÓû§ÃûºÍÃÜÂë²ÅÄܽøÈë¡£ÕâÑù¿ÉÒÔÈ·±£ÏµÍ³µÄ°²È«ÐԺͱ£ÃÜÐÔ£¬µÇ¼´°ÌåµÄÖÆ×÷°´ÕÕϵͳµÄ´óС¼°Óô¦£¬¿ÉÒÔ·ÖΪ²»Í¬µÄµÇ¼´°ÌåÑùʽ£¬ÔÚϵͳµÚÒ»´ÎµÇ¼ǰ£¬Ê×ÏÈÒª¶Ô²Ù×÷Ô±ÐÅÏ¢½øÐÐÏàÓ¦µÄÉèÖᣱ¾½Ú½«¶ÔµÇ¼´°Ìå¼°²Ù×÷Ô±¹ÜÀí´°ÌåµÄÖÆ×÷¹ý³Ì½øÐÐÏêϸµÄ˵Ã÷ ......
Ï̵߳Ļù´¡ÖªÊ¶
Ï̵߳Ä×é³É¡£Ïß³ÌÓÐÁ½²¿·Ö×é³É¡£
1¡¢Ò»¸öÊÇÏ̵߳ÄÄں˶ÔÏ󣬲Ù×÷ϵͳÓÃËüÀ´¶ÔÏß³Ìʵʩ¹ÜÀí¡£Äں˶ÔÏóÒ²ÊÇϵͳÓÃÀ´´æ·ÅÏß³Ìͳ¼ÆÐÅÏ¢µÄµØ·½¡£
2¡¢ÁíÒ»¸öÊÇÏ̶߳ÑÕ»£¬ËüÓÃÓÚά»¤Ïß³ÌÔÚÖ´ÐдúÂëʱÐèÒªµÄËùÓк¯Êý²ÎÊýºÍ¾Ö² ......
ÓÉÓÚ×é¼þÌṩµÄ·½Ê½²»Í¬£¬ËùÒÔ°²×°µÄ·½·¨Ò²ÊDz»Ò»ÑùµÄ£¬ÏÂÃæ¾ÍÄ¿Ç°³£¼ûµÄ¸÷ÖÖÐÎʽµÄ×é¼þµÄ°²×°·½·¨½éÉÜһϡ£
1 Ö»ÓÐÒ»¸öDCUÎļþµÄ×é¼þ¡£DCUÎļþÊDZàÒëºÃµÄµ¥ÔªÎļþ£¬ÕâÑùµÄ×é¼þÊÇ×÷Õß²»Ïë°ÑÔ´Â빫²¼¡£Ò»°ãÀ´Ëµ£¬×÷Õß±ØÐë˵Ã÷´Ë×é¼þÊʺÏDelphiµÄÄÄÖÖ°æ±¾£¬Èç¹û°æ±¾²»¶ ......