CÔËÐÐʱ¿âº¯ÊýºÍAPIº¯ÊýÓÐÊ²Ã´Çø±ðºÍÁªÏµÄØ£¿
CÔËÐÐʱ¿âº¯ÊýÊÇÖ¸CÓïÑÔ±¾Ê¡Ö§³ÖµÄһЩ»ù±¾º¯Êý£¬Í¨³£ÊÇ»ã±àÖ±½ÓʵÏÖµÄ
¡£
APIº¯ÊýÊDzÙ×÷ϵͳÌṩ¸øÓû§·½±ãÉè¼ÆÓ¦ÓóÌÐòµÄº¯Êý£¬ÊµÏÖÒ»Ð©ÌØ¶¨µÄ¹¦ÄÜ£¬APIº¯ÊýÒ²ÊÇCÓïÑԵĺ¯Êý
ʵÏֵġ£
ËûÃÇÖ®¼äÇø±ðÊÇ£ºAPIº¯ÊýÊÇÕë¶Ô²Ù×÷ϵͳµÄ£¬CÓïÑÔÔËÐÐʱº¯ÊýÔòÊÇÕë¶ÔCÓïÑÔ±¾ÉíµÄ¡£
===========================================================
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C
ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾ÉíÖØÐ´ÁË
90% ÒÔÉ쵀 U ......
CÔËÐÐʱ¿âº¯ÊýºÍAPIº¯ÊýÓÐÊ²Ã´Çø±ðºÍÁªÏµÄØ£¿
CÔËÐÐʱ¿âº¯ÊýÊÇÖ¸CÓïÑÔ±¾Ê¡Ö§³ÖµÄһЩ»ù±¾º¯Êý£¬Í¨³£ÊÇ»ã±àÖ±½ÓʵÏÖµÄ
¡£
APIº¯ÊýÊDzÙ×÷ϵͳÌṩ¸øÓû§·½±ãÉè¼ÆÓ¦ÓóÌÐòµÄº¯Êý£¬ÊµÏÖÒ»Ð©ÌØ¶¨µÄ¹¦ÄÜ£¬APIº¯ÊýÒ²ÊÇCÓïÑԵĺ¯Êý
ʵÏֵġ£
ËûÃÇÖ®¼äÇø±ðÊÇ£ºAPIº¯ÊýÊÇÕë¶Ô²Ù×÷ϵͳµÄ£¬CÓïÑÔÔËÐÐʱº¯ÊýÔòÊÇÕë¶ÔCÓïÑÔ±¾ÉíµÄ¡£
===========================================================
1)ÔËÐÐʱ¿â¾ÍÊÇ C run-time library£¬ÊÇ C ¶ø·Ç C++ ÓïÑÔÊÀ½çµÄ¸ÅÄî:È¡Õâ¸öÃû×Ö¾ÍÊÇÒòΪÄãµÄ C ³ÌÐòÔËÐÐʱÐèÒªÕâЩ¿âÖеĺ¯Êý.
2)C ÓïÑÔÊÇËùνµÄ“СÄں˔ÓïÑÔ£¬¾ÍÆäÓïÑÔ±¾ÉíÀ´ËµºÜС£¨²»¶àµÄ¹Ø¼ü×Ö£¬³ÌÐòÁ÷³Ì¿ØÖÆ£¬Êý¾ÝÀàÐ͵ȣ©£»ËùÒÔ£¬C
ÓïÑÔÄں˿ª·¢³öÀ´Ö®ºó£¬Dennis Ritchie ºÍ Brian Kernighan ¾ÍÓà C ±¾ÉíÖØÐ´ÁË
90% ÒÔÉ쵀 U ......
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃǵÄÀàµÄÃû×ÖÀ´·¢·ÃÎʾ²Ì¬³ÉÔ±¡£
4¡¢C#ÅÉÉúÀàÖУ¬Ã»ÓÐ˽ÓлòÕß±£»¤¼Ì³Ð¡£¹ØÓÚÕâÒ»µãC++³ÌÐòÔ±×¢ÒâÁË¡£
5¡¢C#¶à̬ÐÔ,C++³ÌÐòÔ±×¢Òâ,±ØÐëÏÔʽÓùؼü×Ôoverride±ê¼ÇÖØÐ¶¨ÒåÁËÐé·½·¨µÄ·½·¨ÉùÃ÷¡£
6¡¢³éÏóÀàÓëÃÜ·âÀ࣬³éÏóÀàÓÃÀ´±»ÅÉÉú£¬²¢ÎªÆä×ÓÀàÌṩ×ñÑÄ£°æ£»¶øÃÜ·âÀàÔòÍêÈ«²»ÔÊÐí±»ÅÉÉú¡£³éÏóÀà¹Ø¼ü×ÖÊÇabstract£»ÃÜ·âÀà¹Ø¼ü×ÖΪsealed
7¡¢C#ÖнṹÌåµÄ¶¨ÒåÓëC++µÄ·Ç³£²»Í¬¡£ÔÚC++ÖУ¬½á¹¹ÌåÓëÀà³ýÁËĬÈϵĿɼûÐÔ£¨Ò»¸öÊÇpublic£¬Ò»¸öÊÇprivae£©Ö®ÍâÍêȫһÑù¡£¶øÔÚC#ÖУ¬½á¹¹ÌåÊÇÖµÀàÐÍ£¬¶øÀàÊÇÒýÓÃÀàÐÍ¡£
8¡¢C#ÖÐίÍÐÏ൱ÓÚC++Öеķ½·¨Ö¸Õ룬¹Ø¼ü×ÖΪdelegate¡£
9¡¢.NETÓÃÀ´´´½¨ÍøÒ³³ÌÐòµÄ¼¼ÊõÊÇASP.NET2.0£¬ËüÔÚÃüÃû¿Õ¼äSystem.WebºÍSystem.Web.UIÖÐΪ´´½¨ÍøÒ³³ÌÐòÌṩÁËÒ»Ì׷ḻµÄÀàÐÍ¡£
10¡¢C#Ïß³ÌÈýÖÖͬ²½»úÖÆ£º»¥ËøÀࣨInterlocked£©£¬C# lo ......
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃǵÄÀàµÄÃû×ÖÀ´·¢·ÃÎʾ²Ì¬³ÉÔ±¡£
4¡¢C#ÅÉÉúÀàÖУ¬Ã»ÓÐ˽ÓлòÕß±£»¤¼Ì³Ð¡£¹ØÓÚÕâÒ»µãC++³ÌÐòÔ±×¢ÒâÁË¡£
5¡¢C#¶à̬ÐÔ,C++³ÌÐòÔ±×¢Òâ,±ØÐëÏÔʽÓùؼü×Ôoverride±ê¼ÇÖØÐ¶¨ÒåÁËÐé·½·¨µÄ·½·¨ÉùÃ÷¡£
6¡¢³éÏóÀàÓëÃÜ·âÀ࣬³éÏóÀàÓÃÀ´±»ÅÉÉú£¬²¢ÎªÆä×ÓÀàÌṩ×ñÑÄ£°æ£»¶øÃÜ·âÀàÔòÍêÈ«²»ÔÊÐí±»ÅÉÉú¡£³éÏóÀà¹Ø¼ü×ÖÊÇabstract£»ÃÜ·âÀà¹Ø¼ü×ÖΪsealed
7¡¢C#ÖнṹÌåµÄ¶¨ÒåÓëC++µÄ·Ç³£²»Í¬¡£ÔÚC++ÖУ¬½á¹¹ÌåÓëÀà³ýÁËĬÈϵĿɼûÐÔ£¨Ò»¸öÊÇpublic£¬Ò»¸öÊÇprivae£©Ö®ÍâÍêȫһÑù¡£¶øÔÚC#ÖУ¬½á¹¹ÌåÊÇÖµÀàÐÍ£¬¶øÀàÊÇÒýÓÃÀàÐÍ¡£
8¡¢C#ÖÐίÍÐÏ൱ÓÚC++Öеķ½·¨Ö¸Õ룬¹Ø¼ü×ÖΪdelegate¡£
9¡¢.NETÓÃÀ´´´½¨ÍøÒ³³ÌÐòµÄ¼¼ÊõÊÇASP.NET2.0£¬ËüÔÚÃüÃû¿Õ¼äSystem.WebºÍSystem.Web.UIÖÐΪ´´½¨ÍøÒ³³ÌÐòÌṩÁËÒ»Ì׷ḻµÄÀàÐÍ¡£
10¡¢C#Ïß³ÌÈýÖÖͬ²½»úÖÆ£º»¥ËøÀࣨInterlocked£©£¬C# lo ......
1¡¢C/C++³ÌÐòÔ±Çë×¢Ò⣬²»ÄÜÔÚcaseÓï¾ä²»Îª¿Õʱ“ÏòÏÂÖ´ÐД¡£
2¡¢ÖµÀàÐͺÍÒýÓÃÀàÐÍÖ®¼äµÄÇø±ð£ºC#µÄ»ù±¾ÀàÐÍ£¨int£¬charµÈ£©¶¼ÊÇÖµÀàÐÍ£¬ÊÇÔÚÕ»Öд´½¨µÄ¡£¶ø¶ÔÏóÊÇÒýÓÃÀàÐÍ£¬´´½¨ÓÚ¶ÑÖУ¬ÐèҪʹÓùؼü×Önew¡£
3¡¢ÔÚC#ÖÐͨ¹ýʵÀý·ÃÎʾ²Ì¬·½·¨»ò³ÉÔ±±äÁ¿ÊDz»ºÏ·¨µÄ£¬»áÉú³É±àÒëÆ÷´íÎó¡£µ«ÊÇÎÒÃÇ¿ÉÒÔͨ¹ýÉùÃ÷ËûÃǵÄÀàµÄÃû×ÖÀ´·¢·ÃÎʾ²Ì¬³ÉÔ±¡£
4¡¢C#ÅÉÉúÀàÖУ¬Ã»ÓÐ˽ÓлòÕß±£»¤¼Ì³Ð¡£¹ØÓÚÕâÒ»µãC++³ÌÐòÔ±×¢ÒâÁË¡£
5¡¢C#¶à̬ÐÔ,C++³ÌÐòÔ±×¢Òâ,±ØÐëÏÔʽÓùؼü×Ôoverride±ê¼ÇÖØÐ¶¨ÒåÁËÐé·½·¨µÄ·½·¨ÉùÃ÷¡£
6¡¢³éÏóÀàÓëÃÜ·âÀ࣬³éÏóÀàÓÃÀ´±»ÅÉÉú£¬²¢ÎªÆä×ÓÀàÌṩ×ñÑÄ£°æ£»¶øÃÜ·âÀàÔòÍêÈ«²»ÔÊÐí±»ÅÉÉú¡£³éÏóÀà¹Ø¼ü×ÖÊÇabstract£»ÃÜ·âÀà¹Ø¼ü×ÖΪsealed
7¡¢C#ÖнṹÌåµÄ¶¨ÒåÓëC++µÄ·Ç³£²»Í¬¡£ÔÚC++ÖУ¬½á¹¹ÌåÓëÀà³ýÁËĬÈϵĿɼûÐÔ£¨Ò»¸öÊÇpublic£¬Ò»¸öÊÇprivae£©Ö®ÍâÍêȫһÑù¡£¶øÔÚC#ÖУ¬½á¹¹ÌåÊÇÖµÀàÐÍ£¬¶øÀàÊÇÒýÓÃÀàÐÍ¡£
8¡¢C#ÖÐίÍÐÏ൱ÓÚC++Öеķ½·¨Ö¸Õ룬¹Ø¼ü×ÖΪdelegate¡£
9¡¢.NETÓÃÀ´´´½¨ÍøÒ³³ÌÐòµÄ¼¼ÊõÊÇASP.NET2.0£¬ËüÔÚÃüÃû¿Õ¼äSystem.WebºÍSystem.Web.UIÖÐΪ´´½¨ÍøÒ³³ÌÐòÌṩÁËÒ»Ì׷ḻµÄÀàÐÍ¡£
10¡¢C#Ïß³ÌÈýÖÖͬ²½»úÖÆ£º»¥ËøÀࣨInterlocked£©£¬C# lo ......
ת×Ô£ºÊ¹ÓÃC++¶ÔjavaµÄclassloader½øÐÐÄ£Äâ
Ò»Ö±ÒÔÀ´£¬¾õµÃjavaµÄclassloaderºÜ²»´íµÄ£¬×ö²úÆ·µÄ»°£¬¿ÉÒÔ½«»ù±¾µÄ×öÏÂÀ´ºó£¬½«À©Õ¹Í¨¹ýclassloaderµÄ·½Ê½À´×ö£¬½«¸üеIJ¹
¶¡Ê¹ÓÃclassloaderÀ´×ö£¬ÔÚʹÓÃjavaµÄÍøÂçÓÎÏ·ÖУ¬¿ÉÒÔ½«À©Õ¹Í¨¹ýclassloaderµÄ»úÖÆ£¬ÊµÏÖ¶¯Ì¬µÄ¸üУ¬Ê¡µÄÿ´Î¸üÐÂÒªÖØÐÂÏÂÔØ
¿Í»§¶Ë£¬ÔÚÊÖ»úÉÏ¿ÉÊÇÒ»¸öºÜ²»´íµÄµã×Ó¡£
erlangÒ²Ö§³Ö´úÂëµÄÈȲ¿Êð£¬javaÒ²¿ÉÒÔ¶¯Ì¬¸üУ¬ÄÇô£¬C++ÄØ£¬Ë¼À´¿¼È¥£¬Ã»ÓÐÏëµ½ÀàËÆ·Ç³£ÍêÃÀµÄ·½°¸£¬Ö»ÄÜÖªµÀÒ»¸ö»ù±¾³ÉÐ͵ÄÄÚÈÝ¡£
ÏÖÔÚ£¬²»¹ÜÊÇwindows»¹ÊÇlinux£¬¶¼Ö§³Ödll,ÎÒÃÇ¿ÉÒÔ¶¯Ì¬µÄ¼ÓÔØdll£¬ÊÇ·ñ¿ÉÒÔÏñjavaÄÇÑù£¬¶¯Ì¬µÄµ÷Óú¯ÊýÄØ£¿´ð°¸ÊÇ¿ÉÒԵġ£ÐèÒª½è
Öú²¿·Ö»ã±àÀ´ÊµÏÖ£¬ÒªÖªµÀ£¬ÎÒÃÇ¿ÉÄÜÖ»ÊÇÖªµÀÒ»¸öº¯ÊýµÄÃû×Ö£¬º¯Êý²ÎÊýµÄÀàÐÍ£¬²ÎÊýµÄ¸öÊýµÈµÈ£¬¶¼ÊDz»ÖªµÀµÄ¡£ÒòΪÎÒ¸üÏë×öÒ»¸öÆÕ±éʹÓõ쬶ø²»ÊÇÒª¸æËß
Ä㣺“°ÑijijµÄÍ·Îļþ¸øÎÒ”¡£
Ê×ÏÈ¿´Íâ±íµÄÄÚÈÝ£¬javaµÄClassLoaderµÄÄ£Äâ½Ó¿Ú£º
ClassLoader.h
01
#ifndef _CLASSLOADER_H_
02
#define _CLASSLOADER_H_
03
#include "define.h"
04
#includ ......
ת×Ô£ºÊ¹ÓÃC++¶ÔjavaµÄclassloader½øÐÐÄ£Äâ
Ò»Ö±ÒÔÀ´£¬¾õµÃjavaµÄclassloaderºÜ²»´íµÄ£¬×ö²úÆ·µÄ»°£¬¿ÉÒÔ½«»ù±¾µÄ×öÏÂÀ´ºó£¬½«À©Õ¹Í¨¹ýclassloaderµÄ·½Ê½À´×ö£¬½«¸üеIJ¹
¶¡Ê¹ÓÃclassloaderÀ´×ö£¬ÔÚʹÓÃjavaµÄÍøÂçÓÎÏ·ÖУ¬¿ÉÒÔ½«À©Õ¹Í¨¹ýclassloaderµÄ»úÖÆ£¬ÊµÏÖ¶¯Ì¬µÄ¸üУ¬Ê¡µÄÿ´Î¸üÐÂÒªÖØÐÂÏÂÔØ
¿Í»§¶Ë£¬ÔÚÊÖ»úÉÏ¿ÉÊÇÒ»¸öºÜ²»´íµÄµã×Ó¡£
erlangÒ²Ö§³Ö´úÂëµÄÈȲ¿Êð£¬javaÒ²¿ÉÒÔ¶¯Ì¬¸üУ¬ÄÇô£¬C++ÄØ£¬Ë¼À´¿¼È¥£¬Ã»ÓÐÏëµ½ÀàËÆ·Ç³£ÍêÃÀµÄ·½°¸£¬Ö»ÄÜÖªµÀÒ»¸ö»ù±¾³ÉÐ͵ÄÄÚÈÝ¡£
ÏÖÔÚ£¬²»¹ÜÊÇwindows»¹ÊÇlinux£¬¶¼Ö§³Ödll,ÎÒÃÇ¿ÉÒÔ¶¯Ì¬µÄ¼ÓÔØdll£¬ÊÇ·ñ¿ÉÒÔÏñjavaÄÇÑù£¬¶¯Ì¬µÄµ÷Óú¯ÊýÄØ£¿´ð°¸ÊÇ¿ÉÒԵġ£ÐèÒª½è
Öú²¿·Ö»ã±àÀ´ÊµÏÖ£¬ÒªÖªµÀ£¬ÎÒÃÇ¿ÉÄÜÖ»ÊÇÖªµÀÒ»¸öº¯ÊýµÄÃû×Ö£¬º¯Êý²ÎÊýµÄÀàÐÍ£¬²ÎÊýµÄ¸öÊýµÈµÈ£¬¶¼ÊDz»ÖªµÀµÄ¡£ÒòΪÎÒ¸üÏë×öÒ»¸öÆÕ±éʹÓõ쬶ø²»ÊÇÒª¸æËß
Ä㣺“°ÑijijµÄÍ·Îļþ¸øÎÒ”¡£
Ê×ÏÈ¿´Íâ±íµÄÄÚÈÝ£¬javaµÄClassLoaderµÄÄ£Äâ½Ó¿Ú£º
ClassLoader.h
01
#ifndef _CLASSLOADER_H_
02
#define _CLASSLOADER_H_
03
#include "define.h"
04
#includ ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡£
ÎÒÈÏΪºÃµÄ³ÌÐòÔ±Ó¦¸ÃÓÐÒÔϼ¸·½ÃæµÄËØÖÊ£º
1¡¢ÓÐרÑо«Éñ£¬ÇÚÑ§ÉÆÎÊ¡¢¾ÙÒ»·´Èý¡£
2¡¢»ý¼«ÏòÉϵÄ̬¶È£¬Óд´ÔìÐÔ˼ά¡£
3¡¢ÓëÈË»ý¼«½»Á÷¹µÍ¨µÄÄÜÁ¦£¬ÓÐÍŶӾ«Éñ¡£
4¡¢Ç«Ðé½÷É÷£¬½ä½¾½äÔï¡£
5¡¢Ð´³öµÄ´úÂëÖÊÁ¿¸ß¡£°üÀ¨£º´úÂëµÄÎȶ¨¡¢Ò×¶Á¡¢¹æ·¶¡¢Ò×ά»¤¡¢×¨Òµ¡£
ÕâЩ¶¼ÊdzÌÐòÔ±µÄÐÞÑø£¬ÕâÀïÎÒÏë̸̸¡°±à³ÌÐÞÑø¡±£¬Ò²¾ÍÊÇÉÏÊöÖеĵÚ5µã¡£ÎÒ¾õµÃ£¬Èç
¹ûÎÒÒªÁ˽âÒ»¸ö×÷Õߣ¬ÎһῴËûËùдµÄС˵£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö»¼Ò£¬ÎһῴËûËù»µÄͼ
»£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö¹¤ÈË£¬ÎһῴËûËù×ö³öÀ´µÄ²úÆ·£¬Í¬Ñù£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö³ÌÐòÔ±
£¬ÎÒÏëÊ×ÏÈÎÒ×îÏë¿´µÄ¾ÍÊÇËûµÄ³ÌÐò´úÂ룬³ÌÐò´úÂë¿ÉÒÔ¿´³öÒ»¸ö³ÌÐòÔ±µÄËØÖʺÍÐÞÑø£¬
³ÌÐò¾ÍÏñÒ»¸ö×÷Æ·£¬ÓÐËØÖÊÓÐÐÞÑøµÄ³ÌÐòÔ±µÄ×÷Æ·±ØÈ»ÊÇһͼ¾«ÃÀµÄͼ»£¬Ò»Ê×ÃÀÃîµÄ¸è
Çú£¬Ò»±¾ÉÍÐÄÔÃÄ ......
ÕâÆªÎÄÕºܳ¤£¬×ªÔØÏÂÀ´¹©×Ô¼ºÂýÂýѧϰ¡£
±à³ÌÐÞÑø £¨×÷Õߣº³Â𩣩
————
ʲôÊǺõijÌÐòÔ±£¿ÊDz»ÊǶ®µÃºÜ¶à¼¼Êõϸ½Ú£¿»¹ÊǶ®µ×²ã±à³Ì£¿»¹ÊDZà³ÌËٶȱȽϿ죿
ÎÒ¾õµÃ¶¼²»ÊÇ¡£¶ÔÓÚһЩ¼¼Êõϸ½ÚÀ´ËµºÍµ×²ãµÄ¼¼Êõ£¬Ö»Òª¿´°ïÖú£¬²é×ÊÁϾÍÄÜÕÒµ½£¬¶Ô
ÓÚËٶȿ죬ֻҪ±àµÃ¶àÒ²¾ÍÊìÄÜÉúÇÉÁË¡£
ÎÒÈÏΪºÃµÄ³ÌÐòÔ±Ó¦¸ÃÓÐÒÔϼ¸·½ÃæµÄËØÖÊ£º
1¡¢ÓÐרÑо«Éñ£¬ÇÚÑ§ÉÆÎÊ¡¢¾ÙÒ»·´Èý¡£
2¡¢»ý¼«ÏòÉϵÄ̬¶È£¬Óд´ÔìÐÔ˼ά¡£
3¡¢ÓëÈË»ý¼«½»Á÷¹µÍ¨µÄÄÜÁ¦£¬ÓÐÍŶӾ«Éñ¡£
4¡¢Ç«Ðé½÷É÷£¬½ä½¾½äÔï¡£
5¡¢Ð´³öµÄ´úÂëÖÊÁ¿¸ß¡£°üÀ¨£º´úÂëµÄÎȶ¨¡¢Ò×¶Á¡¢¹æ·¶¡¢Ò×ά»¤¡¢×¨Òµ¡£
ÕâЩ¶¼ÊdzÌÐòÔ±µÄÐÞÑø£¬ÕâÀïÎÒÏë̸̸¡°±à³ÌÐÞÑø¡±£¬Ò²¾ÍÊÇÉÏÊöÖеĵÚ5µã¡£ÎÒ¾õµÃ£¬Èç
¹ûÎÒÒªÁ˽âÒ»¸ö×÷Õߣ¬ÎһῴËûËùдµÄС˵£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö»¼Ò£¬ÎһῴËûËù»µÄͼ
»£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö¹¤ÈË£¬ÎһῴËûËù×ö³öÀ´µÄ²úÆ·£¬Í¬Ñù£¬Èç¹ûÎÒÒªÁ˽âÒ»¸ö³ÌÐòÔ±
£¬ÎÒÏëÊ×ÏÈÎÒ×îÏë¿´µÄ¾ÍÊÇËûµÄ³ÌÐò´úÂ룬³ÌÐò´úÂë¿ÉÒÔ¿´³öÒ»¸ö³ÌÐòÔ±µÄËØÖʺÍÐÞÑø£¬
³ÌÐò¾ÍÏñÒ»¸ö×÷Æ·£¬ÓÐËØÖÊÓÐÐÞÑøµÄ³ÌÐòÔ±µÄ×÷Æ·±ØÈ»ÊÇһͼ¾«ÃÀµÄͼ»£¬Ò»Ê×ÃÀÃîµÄ¸è
Çú£¬Ò»±¾ÉÍÐÄÔÃÄ ......
ÆäʵVIMÒ²ÄܰѱàÒë µ÷ÊÔ¼¯³ÉÔÚÒ»Æð£¬ÏñÊÇÒ»¸öIDEÒ»Ñù¡£
Ê×ÏÈÏÖÔÚVIMµÄÔ´Â룬ÒòΪҪ¼¯³Éµ÷ÊÔ»·¾³µÄ»°ÐèÒªÖØÐ±àÒëVIM²ÅÐУ¬ËùÒÔÎÒÃDz»ÈçÖØÐ°²×°Ò»¸ö¡£
VIMµÄÏÖÔÚµØÖ·£º
http://www.vim.org/sources.php
È»ºóÏÂÔØVIMGDB£¬ÕâÊÇvimµÄ¼¯³Éµ÷ÊÔ»·¾³µÄÒ»¸öÖØÒª²å¼þ³ÌÐò¡£
µØÖ·£ºhttp://sourceforge.net/projects/clewn/files/vimGdb/
,Ñ¡Ôñ¶ÔÓ¦µÄVIM°æ±¾ÏÂÔØ¡£
°ÑÏÂÔØÏÂÀ´µÄÎļþ¶¼·Åµ½ ~/install/ÖÐ
È»ºó£º
cd ~/install/
tar xjf vim-7.2.tar.bz2
tar xzf vimgdb72-1.14.tar.gz
patch -d vim72 --backup -p0 < vimgdb/vim72.diff
ÕâÑù¾Í½âѹ³övimºÍvimgdb£¬²¢¶ÔvimµÄconfigureÎļþ×Ô¶¯×öÁ˵÷Õû
½ÓÏÂÀ´£º
cd ~/install/vim72
make
make install
¾Í×°ºÃvimÁË¡£
È»ºó£º
cd ~/install/vimgdb
mkdir ~/.vim
tar zxf vimgdb_runtime.tgz -C ~/.vim/
ÕâÑù¾Í×°ºÃÁË£¬½ÓÏÂÀ´Æô¶¯vim
ÏȰÑvimgdbµÄ°ïÖúµ¼½øÈ¥
:helptags ~/.vim/doc
ÕâÑù¾Í¿ÉÒÔ
:help vimgdb
À´¿´vimgdbµÄ°ïÖúÁË
ÕâÑù ÎÒÃÇÏÈ´ò¿ªÒ»¸öc³ÌÐò
²¢ÇÒΪÕâ¸ö³ÌÐòдºÃÒ»¸öMakefileÎļþ
ÓÃ
:make
À´±àÒëÕâ¸öÔ´Âë¡£
¸ù¾ÝÉú³ÉµÄ±¨´íÐÅÏ¢ ÎÒÃÇ¿ÉÒÔÀ´Ð޸ijÌÐò£¬Çûسµ»áÌø×ªµ½µÚÒ»¸ö´íÎó£¬Óà ......
ÆäʵVIMÒ²ÄܰѱàÒë µ÷ÊÔ¼¯³ÉÔÚÒ»Æð£¬ÏñÊÇÒ»¸öIDEÒ»Ñù¡£
Ê×ÏÈÏÖÔÚVIMµÄÔ´Â룬ÒòΪҪ¼¯³Éµ÷ÊÔ»·¾³µÄ»°ÐèÒªÖØÐ±àÒëVIM²ÅÐУ¬ËùÒÔÎÒÃDz»ÈçÖØÐ°²×°Ò»¸ö¡£
VIMµÄÏÖÔÚµØÖ·£º
http://www.vim.org/sources.php
È»ºóÏÂÔØVIMGDB£¬ÕâÊÇvimµÄ¼¯³Éµ÷ÊÔ»·¾³µÄÒ»¸öÖØÒª²å¼þ³ÌÐò¡£
µØÖ·£ºhttp://sourceforge.net/projects/clewn/files/vimGdb/
,Ñ¡Ôñ¶ÔÓ¦µÄVIM°æ±¾ÏÂÔØ¡£
°ÑÏÂÔØÏÂÀ´µÄÎļþ¶¼·Åµ½ ~/install/ÖÐ
È»ºó£º
cd ~/install/
tar xjf vim-7.2.tar.bz2
tar xzf vimgdb72-1.14.tar.gz
patch -d vim72 --backup -p0 < vimgdb/vim72.diff
ÕâÑù¾Í½âѹ³övimºÍvimgdb£¬²¢¶ÔvimµÄconfigureÎļþ×Ô¶¯×öÁ˵÷Õû
½ÓÏÂÀ´£º
cd ~/install/vim72
make
make install
¾Í×°ºÃvimÁË¡£
È»ºó£º
cd ~/install/vimgdb
mkdir ~/.vim
tar zxf vimgdb_runtime.tgz -C ~/.vim/
ÕâÑù¾Í×°ºÃÁË£¬½ÓÏÂÀ´Æô¶¯vim
ÏȰÑvimgdbµÄ°ïÖúµ¼½øÈ¥
:helptags ~/.vim/doc
ÕâÑù¾Í¿ÉÒÔ
:help vimgdb
À´¿´vimgdbµÄ°ïÖúÁË
ÕâÑù ÎÒÃÇÏÈ´ò¿ªÒ»¸öc³ÌÐò
²¢ÇÒΪÕâ¸ö³ÌÐòдºÃÒ»¸öMakefileÎļþ
ÓÃ
:make
À´±àÒëÕâ¸öÔ´Âë¡£
¸ù¾ÝÉú³ÉµÄ±¨´íÐÅÏ¢ ÎÒÃÇ¿ÉÒÔÀ´Ð޸ijÌÐò£¬Çûسµ»áÌø×ªµ½µÚÒ»¸ö´íÎó£¬Óà ......
ÆäʵVIMÒ²ÄܰѱàÒë µ÷ÊÔ¼¯³ÉÔÚÒ»Æð£¬ÏñÊÇÒ»¸öIDEÒ»Ñù¡£
Ê×ÏÈÏÖÔÚVIMµÄÔ´Â룬ÒòΪҪ¼¯³Éµ÷ÊÔ»·¾³µÄ»°ÐèÒªÖØÐ±àÒëVIM²ÅÐУ¬ËùÒÔÎÒÃDz»ÈçÖØÐ°²×°Ò»¸ö¡£
VIMµÄÏÖÔÚµØÖ·£º
http://www.vim.org/sources.php
È»ºóÏÂÔØVIMGDB£¬ÕâÊÇvimµÄ¼¯³Éµ÷ÊÔ»·¾³µÄÒ»¸öÖØÒª²å¼þ³ÌÐò¡£
µØÖ·£ºhttp://sourceforge.net/projects/clewn/files/vimGdb/
,Ñ¡Ôñ¶ÔÓ¦µÄVIM°æ±¾ÏÂÔØ¡£
°ÑÏÂÔØÏÂÀ´µÄÎļþ¶¼·Åµ½ ~/install/ÖÐ
È»ºó£º
cd ~/install/
tar xjf vim-7.2.tar.bz2
tar xzf vimgdb72-1.14.tar.gz
patch -d vim72 --backup -p0 < vimgdb/vim72.diff
ÕâÑù¾Í½âѹ³övimºÍvimgdb£¬²¢¶ÔvimµÄconfigureÎļþ×Ô¶¯×öÁ˵÷Õû
½ÓÏÂÀ´£º
cd ~/install/vim72
make
make install
¾Í×°ºÃvimÁË¡£
È»ºó£º
cd ~/install/vimgdb
mkdir ~/.vim
tar zxf vimgdb_runtime.tgz -C ~/.vim/
ÕâÑù¾Í×°ºÃÁË£¬½ÓÏÂÀ´Æô¶¯vim
ÏȰÑvimgdbµÄ°ïÖúµ¼½øÈ¥
:helptags ~/.vim/doc
ÕâÑù¾Í¿ÉÒÔ
:help vimgdb
À´¿´vimgdbµÄ°ïÖúÁË
ÕâÑù ÎÒÃÇÏÈ´ò¿ªÒ»¸öc³ÌÐò
²¢ÇÒΪÕâ¸ö³ÌÐòдºÃÒ»¸öMakefileÎļþ
ÓÃ
:make
À´±àÒëÕâ¸öÔ´Âë¡£
¸ù¾ÝÉú³ÉµÄ±¨´íÐÅÏ¢ ÎÒÃÇ¿ÉÒÔÀ´Ð޸ijÌÐò£¬Çûسµ»áÌø×ªµ½µÚÒ»¸ö´íÎó£¬Óà ......
ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡£±ÈÈ磬GetObjectClass£¬GetMethodID£¬CallObjectMethod£¬NewObject£¬FindClassµÈ½Ó¿Ú£¬¼´¿ÉÍê³ÉC/C++¶ÔJava½Ó¿ÚµÄµ÷Óá£
ÁíÍ⣬ÐèҪעÒâµÄÒ»¸öµØ·½ÊÇ£¬¹ØÓÚsignature¡£±ÈÈ磬ÔÚ jmethodID GetMethodID(jclass clazz, const char *name,
const char *sig) º¯ÊýÖеĵÚÈý¸ö²ÎÊý£¬¾ÍÐèÒªº¯ÊýµÄsignature¡£ÄÇÔõô֪µÀJava·½·¨µÄsignatureÄØ£¿
ÆäʵJDK£¬ÌṩÁ˲鿴Java·½·¨µÄsignature¡£·½·¨ÈçÏ£º
(1)¡¢CMD£¬È¥µ½xxx.classËùÔÚµÄĿ¼¡£
(2)¡¢ÊäÈëÃüÁjavap -s xxx
(3)¡¢½á¹û³ÊÏÖÔÚÄãÑÛǰ¡£
ÑÓÉ죺Android NDKÒ²ÀàËÆ£¬Í¬Ñù¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄ»¥µ÷¡£ ......
ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡£±ÈÈ磬GetObjectClass£¬GetMethodID£¬CallObjectMethod£¬NewObject£¬FindClassµÈ½Ó¿Ú£¬¼´¿ÉÍê³ÉC/C++¶ÔJava½Ó¿ÚµÄµ÷Óá£
ÁíÍ⣬ÐèҪעÒâµÄÒ»¸öµØ·½ÊÇ£¬¹ØÓÚsignature¡£±ÈÈ磬ÔÚ jmethodID GetMethodID(jclass clazz, const char *name,
const char *sig) º¯ÊýÖеĵÚÈý¸ö²ÎÊý£¬¾ÍÐèÒªº¯ÊýµÄsignature¡£ÄÇÔõô֪µÀJava·½·¨µÄsignatureÄØ£¿
ÆäʵJDK£¬ÌṩÁ˲鿴Java·½·¨µÄsignature¡£·½·¨ÈçÏ£º
(1)¡¢CMD£¬È¥µ½xxx.classËùÔÚµÄĿ¼¡£
(2)¡¢ÊäÈëÃüÁjavap -s xxx
(3)¡¢½á¹û³ÊÏÖÔÚÄãÑÛǰ¡£
ÑÓÉ죺Android NDKÒ²ÀàËÆ£¬Í¬Ñù¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄ»¥µ÷¡£ ......
ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡£±ÈÈ磬GetObjectClass£¬GetMethodID£¬CallObjectMethod£¬NewObject£¬FindClassµÈ½Ó¿Ú£¬¼´¿ÉÍê³ÉC/C++¶ÔJava½Ó¿ÚµÄµ÷Óá£
ÁíÍ⣬ÐèҪעÒâµÄÒ»¸öµØ·½ÊÇ£¬¹ØÓÚsignature¡£±ÈÈ磬ÔÚ jmethodID GetMethodID(jclass clazz, const char *name,
const char *sig) º¯ÊýÖеĵÚÈý¸ö²ÎÊý£¬¾ÍÐèÒªº¯ÊýµÄsignature¡£ÄÇÔõô֪µÀJava·½·¨µÄsignatureÄØ£¿
ÆäʵJDK£¬ÌṩÁ˲鿴Java·½·¨µÄsignature¡£·½·¨ÈçÏ£º
(1)¡¢CMD£¬È¥µ½xxx.classËùÔÚµÄĿ¼¡£
(2)¡¢ÊäÈëÃüÁjavap -s xxx
(3)¡¢½á¹û³ÊÏÖÔÚÄãÑÛǰ¡£
ÑÓÉ죺Android NDKÒ²ÀàËÆ£¬Í¬Ñù¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄ»¥µ÷¡£ ......