һλͬѧÕûÀíµÄ³£¼û±ÊÊÔ/ÃæÊÔÌâÄ¿£¬´ð°¸½ö¹©²Î¿¼£¬²»´ú±í±¾È˹۵㡣
Õâ¸ö¶«Î÷ÓÐЩ²Î¿¼¼ÛÖµ,ºÍͬѧÌÖÂÛһϷ¢ÏÖ»¹ÊÇÓÐЩ´íÎó,
1£®ÒÑÖªstrcpyº¯ÊýµÄÔÐÍÊÇ£º
char * strcpy(char * strDest,const char * strSrc);
1.²»µ÷Óÿ⺯Êý£¬ÊµÏÖstrcpyº¯Êý¡£
2.½âÊÍΪʲôҪ·µ»Øchar *¡£
½â˵£º
1.strcpyµÄʵÏÖ´úÂë
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy=strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
´íÎóµÄ×ö·¨£º
[1]
(A)²»¼ì²éÖ¸ÕëµÄÓÐЧÐÔ£¬ËµÃ÷´ðÌâÕß²»×¢ÖØ´úÂëµÄ½¡×³ÐÔ¡£
(B)¼ì²éÖ¸ÕëµÄÓÐЧÐÔʱʹÓÃ((!strDest)||(!strSrc))»ò(!(strDest&&strSrc))£¬ËµÃ÷´ðÌâÕß¶ÔCÓïÑÔÖÐÀàÐ͵ÄÒþʽת»»Ã»ÓÐÉî¿ÌÈÏʶ¡£ÔÚ±¾ÀýÖÐchar *ת»»Îªbool¼´ÊÇÀàÐÍÒþʽת»»£¬ÕâÖÖ¹¦ÄÜËäÈ»Áé»î£¬µ«¸ü¶àµÄÊǵ¼Ö³ö´í¸ÅÂÊÔö´óºÍά»¤³É±¾Éý¸ß¡£ËùÒÔC++רÃÅÔö¼ÓÁËbool¡¢true¡¢falseÈý¸ö¹Ø¼ü×ÖÒÔÌṩ¸ü°²È«µÄÌõ¼þ±í´ïʽ¡£
(C)¼ì²éÖ¸ÕëµÄÓÐЧÐÔʱʹÓÃ((strDest==0)||(strSrc==0))£¬ËµÃ÷´ðÌâÕß²»ÖªµÀʹÓó£Á¿µÄºÃ´¦¡£Ö±½ÓʹÓÃ×Ö ......
һλͬѧÕûÀíµÄ³£¼û±ÊÊÔ/ÃæÊÔÌâÄ¿£¬´ð°¸½ö¹©²Î¿¼£¬²»´ú±í±¾È˹۵㡣
Õâ¸ö¶«Î÷ÓÐЩ²Î¿¼¼ÛÖµ,ºÍͬѧÌÖÂÛһϷ¢ÏÖ»¹ÊÇÓÐЩ´íÎó,
1£®ÒÑÖªstrcpyº¯ÊýµÄÔÐÍÊÇ£º
char * strcpy(char * strDest,const char * strSrc);
1.²»µ÷Óÿ⺯Êý£¬ÊµÏÖstrcpyº¯Êý¡£
2.½âÊÍΪʲôҪ·µ»Øchar *¡£
½â˵£º
1.strcpyµÄʵÏÖ´úÂë
char * strcpy(char * strDest,const char * strSrc)
{
if ((strDest==NULL)||(strSrc==NULL)) //[1]
throw "Invalid argument(s)"; //[2]
char * strDestCopy=strDest; //[3]
while ((*strDest++=*strSrc++)!='\0'); //[4]
return strDestCopy;
}
´íÎóµÄ×ö·¨£º
[1]
(A)²»¼ì²éÖ¸ÕëµÄÓÐЧÐÔ£¬ËµÃ÷´ðÌâÕß²»×¢ÖØ´úÂëµÄ½¡×³ÐÔ¡£
(B)¼ì²éÖ¸ÕëµÄÓÐЧÐÔʱʹÓÃ((!strDest)||(!strSrc))»ò(!(strDest&&strSrc))£¬ËµÃ÷´ðÌâÕß¶ÔCÓïÑÔÖÐÀàÐ͵ÄÒþʽת»»Ã»ÓÐÉî¿ÌÈÏʶ¡£ÔÚ±¾ÀýÖÐchar *ת»»Îªbool¼´ÊÇÀàÐÍÒþʽת»»£¬ÕâÖÖ¹¦ÄÜËäÈ»Áé»î£¬µ«¸ü¶àµÄÊǵ¼Ö³ö´í¸ÅÂÊÔö´óºÍά»¤³É±¾Éý¸ß¡£ËùÒÔC++רÃÅÔö¼ÓÁËbool¡¢true¡¢falseÈý¸ö¹Ø¼ü×ÖÒÔÌṩ¸ü°²È«µÄÌõ¼þ±í´ïʽ¡£
(C)¼ì²éÖ¸ÕëµÄÓÐЧÐÔʱʹÓÃ((strDest==0)||(strSrc==0))£¬ËµÃ÷´ðÌâÕß²»ÖªµÀʹÓó£Á¿µÄºÃ´¦¡£Ö±½ÓʹÓÃ×Ö ......
ºÍÔÚIDEÖбàÒëÏà±È£¬ÃüÁîÐÐģʽ±àÒëËٶȸü¿ì£¬²¢¿ÉÒÔ±ÜÃâ±»IDE²úÉúµÄһЩ¸½¼ÓÐÅÏ¢Ëù¸ÉÈÅ¡£±¾ÎĽ«½éÉÜ΢ÈíC/C++±àÒëÆ÷ÃüÁîÐÐģʽÉ趨ºÍÓ÷¨¡£
1¡¢ÉèÖû·¾³±äÁ¿£º
PATH=C:\Program Files\Microsoft Visual Studio 8\VC\bin
INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\include
LIB=C:\Program Files\Microsoft Visual Studio 8\VC\lib
Èç¹ûÌáʾÕÒ²»µ½mspdb80.dllÎļþ£¬Ôò´ÓC:\Program Files\Microsoft Visual Studio 8\Common7\IDEÏ¿½±´“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”ÕâËĸöÎļþµ½C:\Program Files\Microsoft Visual Studio 8\VC\binϼ´¿É¡£
2¡¢ÃüÁîÑ¡Ï
1) /C:ÔÚÔ¤´¦ÀíÊä³öÖб£Áô×¢ÊÍÓï¾ä
2) /c:Ö»±àÒ룬²»Á¬½Ó£¬Ï൱ÓÚÔÚ"Build"²Ëµ¥ÏÂÑ¡ÔñÁË"Compile"
3) /D:¶¨Òå³£Á¿ºÍºê£¬ÓëÔ´³ÌÐòÀïµÄ#define ÓÐÏàͬЧ¹û
4) /E:Ô¤´¦ÀíC¡¢C£«£«Ô´Îļþ£¬½«Ô´ÎļþÖÐËùÓеÄÔ¤±àÒëÖ¸Áî¼°ºêÕ¹¿ª£¬½«×¢ÊÍÈ¥µô£¬È»ºó½«Ô¤´¦ÀíÆ÷µÄÊä³ö¿½±´ÖÁ±ê×¼Êä³öÉ豸Êä³ö£¬² ......
ºÍÔÚIDEÖбàÒëÏà±È£¬ÃüÁîÐÐģʽ±àÒëËٶȸü¿ì£¬²¢¿ÉÒÔ±ÜÃâ±»IDE²úÉúµÄһЩ¸½¼ÓÐÅÏ¢Ëù¸ÉÈÅ¡£±¾ÎĽ«½éÉÜ΢ÈíC/C++±àÒëÆ÷ÃüÁîÐÐģʽÉ趨ºÍÓ÷¨¡£
1¡¢ÉèÖû·¾³±äÁ¿£º
PATH=C:\Program Files\Microsoft Visual Studio 8\VC\bin
INCLUDE=C:\Program Files\Microsoft Visual Studio 8\VC\include
LIB=C:\Program Files\Microsoft Visual Studio 8\VC\lib
Èç¹ûÌáʾÕÒ²»µ½mspdb80.dllÎļþ£¬Ôò´ÓC:\Program Files\Microsoft Visual Studio 8\Common7\IDEÏ¿½±´“msobj80.dll,mspdb80.dll,mspdbcore.dll,mspdbsrv.exe”ÕâËĸöÎļþµ½C:\Program Files\Microsoft Visual Studio 8\VC\binϼ´¿É¡£
2¡¢ÃüÁîÑ¡Ï
1) /C:ÔÚÔ¤´¦ÀíÊä³öÖб£Áô×¢ÊÍÓï¾ä
2) /c:Ö»±àÒ룬²»Á¬½Ó£¬Ï൱ÓÚÔÚ"Build"²Ëµ¥ÏÂÑ¡ÔñÁË"Compile"
3) /D:¶¨Òå³£Á¿ºÍºê£¬ÓëÔ´³ÌÐòÀïµÄ#define ÓÐÏàͬЧ¹û
4) /E:Ô¤´¦ÀíC¡¢C£«£«Ô´Îļþ£¬½«Ô´ÎļþÖÐËùÓеÄÔ¤±àÒëÖ¸Áî¼°ºêÕ¹¿ª£¬½«×¢ÊÍÈ¥µô£¬È»ºó½«Ô¤´¦ÀíÆ÷µÄÊä³ö¿½±´ÖÁ±ê×¼Êä³öÉ豸Êä³ö£¬² ......
À´CSDNµÄʱºò£¬¸Õ¸Õ½Ó´¥Python£¬ÄÇʱºò¶ÔPythonµÄǶÈ벿·ÖºÜ¸ÐÐËȤ£¬Ö»ÊÇһֱûÓÐʱ¼äÀ´ÅªÇåÆäÃæÉ´£¬Òò´ËҲһֱûÓÐʹÓÃǶÈëµÄ¹¦ÄÜ£¬ÁíÒ»¸öÔÒòÊÇÎÒ»¹Ã»ÓÐÕæÕýÓÃPythonд¹ýÒ»¸öÕýʽµÄÓÐÓõãµÄ¶«Î÷£¬²»¹ý£¬ÏÖÔڻعýÍ·À´¼ÌÐø¿´ÕâÒ»²¿·Ö£¬·¢ÏÖ»¹ÊÇͦ¼òµ¥µÄ¡£ÒÔǰÏë°ÑÕⲿ·Ö·Òë³öÀ´£¬¿ÉÊÇÓÉÓÚʱ¼äÔÒò£¬Ò²Ã»ÓÐÄǾ«Á¦£¬ËùÒÔÕâÀïÎһὫÎÒËù̽¾¿µÄÿ¸öPython/CǶÈ벿·Öº¯Êý¶¼ÓÃʵÀýÀ´ËµÃ÷£¬ÎÒÏë¿´´úÂë±ÈÎÒ½âÊÍҪͨË×Ò×¶®¡£
ÔÙ˵helloworld֮ǰ£¬ÏȲ»µÃ²»ÌáÏÂǶÈëµÄÅäÖÃÎÊÌâ¡£
²½Ö裺
1£ºÇëµ½¹ÙÍøÏÂÔØpythonµÄ°²×°³ÌÐò£¬°²×°python£¨ÎÒÏëÕâ²½Óеã¶àÓ࣬²»¹ý»¹ÊÇдÉϰɣ©
2£º½Ó×ÅÄã¿ÉÄÜ»¹ÐèÒªÏÂÔØpython£¨Óë°²×°°æ±¾Ïàͬ£©Ô´´úÂ룬ÒòΪÎÒÃÇÐèÒªÔÚdebugϱàÒëÁ´½ÓÉú³É¶ÔÓ¦µÄdebug¿â£¬ÈôÄãÄÜÔÚÍøÉÏÕÒµ½±ðÈËÒѾ±àÒëºÃµÄ¿â£¬ÄãÒ²¿ÉÒÔÖ±½ÓÓñðÈ˵ġ£ÕâÑùµÃµ½2¸ödebug°æ±¾µÄ.libºÍ.dll
3£º½«pythonĿ¼ÏµÄincludeÎļþ¼ÐϵÄÎļþÒÆµ½±àÒëϵͳµÄincludeÖУ¬È»ºó½«releaseºÍdebug°æ±¾µÄ.libºÍ.dll·Åµ½Ö¸¶¨µÄÎļþ¼ÐÖУ¨lib·Åµ½±àÒëϵͳlib£¬dll·Åµ½windows/system32/£©
4£ººÃÁË£¬ÅäÖþʹËÍê³ÉÁË¡£
À´¿´´úÂ룺
#include "python/python.h" //ÎÒÊǽ«pythonÄÇЩͷÎļþ·ÅÔÚÎÒ×Ô¼º½¨µ ......
À´CSDNµÄʱºò£¬¸Õ¸Õ½Ó´¥Python£¬ÄÇʱºò¶ÔPythonµÄǶÈ벿·ÖºÜ¸ÐÐËȤ£¬Ö»ÊÇһֱûÓÐʱ¼äÀ´ÅªÇåÆäÃæÉ´£¬Òò´ËҲһֱûÓÐʹÓÃǶÈëµÄ¹¦ÄÜ£¬ÁíÒ»¸öÔÒòÊÇÎÒ»¹Ã»ÓÐÕæÕýÓÃPythonд¹ýÒ»¸öÕýʽµÄÓÐÓõãµÄ¶«Î÷£¬²»¹ý£¬ÏÖÔڻعýÍ·À´¼ÌÐø¿´ÕâÒ»²¿·Ö£¬·¢ÏÖ»¹ÊÇͦ¼òµ¥µÄ¡£ÒÔǰÏë°ÑÕⲿ·Ö·Òë³öÀ´£¬¿ÉÊÇÓÉÓÚʱ¼äÔÒò£¬Ò²Ã»ÓÐÄǾ«Á¦£¬ËùÒÔÕâÀïÎһὫÎÒËù̽¾¿µÄÿ¸öPython/CǶÈ벿·Öº¯Êý¶¼ÓÃʵÀýÀ´ËµÃ÷£¬ÎÒÏë¿´´úÂë±ÈÎÒ½âÊÍҪͨË×Ò×¶®¡£
ÔÙ˵helloworld֮ǰ£¬ÏȲ»µÃ²»ÌáÏÂǶÈëµÄÅäÖÃÎÊÌâ¡£
²½Ö裺
1£ºÇëµ½¹ÙÍøÏÂÔØpythonµÄ°²×°³ÌÐò£¬°²×°python£¨ÎÒÏëÕâ²½Óеã¶àÓ࣬²»¹ý»¹ÊÇдÉϰɣ©
2£º½Ó×ÅÄã¿ÉÄÜ»¹ÐèÒªÏÂÔØpython£¨Óë°²×°°æ±¾Ïàͬ£©Ô´´úÂ룬ÒòΪÎÒÃÇÐèÒªÔÚdebugϱàÒëÁ´½ÓÉú³É¶ÔÓ¦µÄdebug¿â£¬ÈôÄãÄÜÔÚÍøÉÏÕÒµ½±ðÈËÒѾ±àÒëºÃµÄ¿â£¬ÄãÒ²¿ÉÒÔÖ±½ÓÓñðÈ˵ġ£ÕâÑùµÃµ½2¸ödebug°æ±¾µÄ.libºÍ.dll
3£º½«pythonĿ¼ÏµÄincludeÎļþ¼ÐϵÄÎļþÒÆµ½±àÒëϵͳµÄincludeÖУ¬È»ºó½«releaseºÍdebug°æ±¾µÄ.libºÍ.dll·Åµ½Ö¸¶¨µÄÎļþ¼ÐÖУ¨lib·Åµ½±àÒëϵͳlib£¬dll·Åµ½windows/system32/£©
4£ººÃÁË£¬ÅäÖþʹËÍê³ÉÁË¡£
À´¿´´úÂ룺
#include "python/python.h" //ÎÒÊǽ«pythonÄÇЩͷÎļþ·ÅÔÚÎÒ×Ô¼º½¨µ ......
/********************************************************************
*ɾ³ýC/C++×¢ÊÍ
**********************************************************************/
#include <stdio.h>
//×¢Òâ
//1.¶Ô/****/µÄ´¦Àí
//2.Òª±£ÁôË«ÒýºÅÖ®¼äµÄÄÚÈÝ£¬Èçchar* test = "/*i am not comment */";
//3.¶ÔÓÚµ¥ÒýºÅÖеÄÄÚÈÝͬÑù±£Áô(²»¼ì²é³ÌÐòµÄÓï·¨´íÎó)
//4.¶ÔÓÚתÒå×Ö·ûµÄ´¦Àí(¼û״̬6)£¬Èçchar* test = "string\"string too/*i am not comment"
int noComment(FILE *in,FILE *out)
{
int ch, lastch, state = 0, sq = 0;
while( ( ch = fgetc(in) ) != EOF )
{
switch(state)
{
case 0:
if( ch == '/' )
{
lastch = '/' ;
......
/********************************************************************
*ɾ³ýC/C++×¢ÊÍ
**********************************************************************/
#include <stdio.h>
//×¢Òâ
//1.¶Ô/****/µÄ´¦Àí
//2.Òª±£ÁôË«ÒýºÅÖ®¼äµÄÄÚÈÝ£¬Èçchar* test = "/*i am not comment */";
//3.¶ÔÓÚµ¥ÒýºÅÖеÄÄÚÈÝͬÑù±£Áô(²»¼ì²é³ÌÐòµÄÓï·¨´íÎó)
//4.¶ÔÓÚתÒå×Ö·ûµÄ´¦Àí(¼û״̬6)£¬Èçchar* test = "string\"string too/*i am not comment"
int noComment(FILE *in,FILE *out)
{
int ch, lastch, state = 0, sq = 0;
while( ( ch = fgetc(in) ) != EOF )
{
switch(state)
{
case 0:
if( ch == '/' )
{
lastch = '/' ;
......
ÔÚ±à³ÌµÄ¹ý³ÌÖУ¬ÎļþµÄ²Ù×÷ÊÇÒ»¸ö¾³£Óõ½µÄÎÊÌ⣬ÔÚC++BuilderÖУ¬¿ÉÒÔʹÓöàÖÖ·½·¨¶ÔÎļþ²Ù×÷£¬ÏÂÃæÎҾͰ´ÒÔϼ¸¸ö²¿·Ö¶Ô´Ë×÷Ïêϸ½éÉÜ£¬¾ÍÊÇ£º
1¡¢»ùÓÚCµÄÎļþ²Ù×÷£»
2¡¢»ùÓÚC++µÄÎļþ²Ù×÷£»
3¡¢»ùÓÚWINAPIµÄÎļþ²Ù×÷£»
4¡¢»ùÓÚBCB¿âµÄÎļþ²Ù×÷£»
5¡¢ÌØÊâÎļþµÄ²Ù×÷¡£
¡¡
Ò¼¡¢»ùÓÚCµÄÎļþ²Ù×÷
¡¡¡¡ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷£¬ÏÂÃæ¾Í·Ö±ð½éÉÜÖ®¡£
Ò»¡¢Á÷ʽÎļþ²Ù×÷
¡¡¡¡ÕâÖÖ·½Ê½µÄÎļþ²Ù×÷ÓÐÒ»¸öÖØÒªµÄ½á¹¹FILE£¬FILEÔÚstdio.hÖж¨ÒåÈçÏ£º
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
¡¡¡¡FILEÕâ¸ö½á¹¹°üº¬ÁËÎļþ²Ù×÷µÄ»ù±¾ÊôÐÔ£¬¶ÔÎļþµÄ²Ù×÷¶¼ÒªÍ¨¹ý ......
ÔÚ±à³ÌµÄ¹ý³ÌÖУ¬ÎļþµÄ²Ù×÷ÊÇÒ»¸ö¾³£Óõ½µÄÎÊÌ⣬ÔÚC++BuilderÖУ¬¿ÉÒÔʹÓöàÖÖ·½·¨¶ÔÎļþ²Ù×÷£¬ÏÂÃæÎҾͰ´ÒÔϼ¸¸ö²¿·Ö¶Ô´Ë×÷Ïêϸ½éÉÜ£¬¾ÍÊÇ£º
1¡¢»ùÓÚCµÄÎļþ²Ù×÷£»
2¡¢»ùÓÚC++µÄÎļþ²Ù×÷£»
3¡¢»ùÓÚWINAPIµÄÎļþ²Ù×÷£»
4¡¢»ùÓÚBCB¿âµÄÎļþ²Ù×÷£»
5¡¢ÌØÊâÎļþµÄ²Ù×÷¡£
¡¡
Ò¼¡¢»ùÓÚCµÄÎļþ²Ù×÷
¡¡¡¡ÔÚANSI CÖУ¬¶ÔÎļþµÄ²Ù×÷·ÖΪÁ½ÖÖ·½Ê½£¬¼´Á÷ʽÎļþ²Ù×÷ºÍI/OÎļþ²Ù×÷£¬ÏÂÃæ¾Í·Ö±ð½éÉÜÖ®¡£
Ò»¡¢Á÷ʽÎļþ²Ù×÷
¡¡¡¡ÕâÖÖ·½Ê½µÄÎļþ²Ù×÷ÓÐÒ»¸öÖØÒªµÄ½á¹¹FILE£¬FILEÔÚstdio.hÖж¨ÒåÈçÏ£º
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE; /* This is the FILE object */
¡¡¡¡FILEÕâ¸ö½á¹¹°üº¬ÁËÎļþ²Ù×÷µÄ»ù±¾ÊôÐÔ£¬¶ÔÎļþµÄ²Ù×÷¶¼ÒªÍ¨¹ý ......
JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢ JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......
JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢ JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......
JavaÓïÑÔ±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬Èç¹ûͨ¹ýJavaµ÷ÓÃDLLµÄ¼¼Êõ·½±ãÒ×Óã¬Ê¹ÓÃJava¿ª·¢Ç°Ì¨½çÃæ¿ÉÒÔ¸ü¿ìËÙ£¬Ò²ÄÜ´øÀ´¿çƽ̨ÐÔ¡£
Javaµ÷ÓÃC/C++дºÃµÄDLL¿âʱ£¬ÓÉÓÚ»ù±¾Êý¾ÝÀàÐͲ»Í¬¡¢Ê¹ÓÃ×Ö½ÚÐòÁпÉÄÜÓвîÒ죬ËùÒÔÔÚ²ÎÊý´«µÝ¹ý³ÌÖÐÈÝÒ׳öÏÖÎÊÌ⣬DLLÖпÉÄÜÐèÒª×öÏàÓ¦µÄת»»¡£
ʹÓÃJavaµ÷ÓÃDLL¶¯Ì¬Á´½Ó¿âµÄ·½°¸Í¨³£ÓÐÈýÖÖ£ºJNI, Jawin, Jacob. ÆäJNI(Java Native Interface)ÊÇJavaÓïÑÔ±¾ÉíÌṩµÄµ÷Óñ¾µØÒѱàÒëµÄº¯Êý¿âµÄ·½·¨£¬±¾Éí¾ßÓÐ¿çÆ½Ì¨ÐÔ£¬¿ÉÒÔÔÚ²»Í¬µÄ»úÆ÷Éϵ÷Óò»Í¬µÄ±¾µØ¿â¡£JawinºÍJacob¶¼ÊÇsourceforge.netµÄ¿ªÔ´ÏîÄ¿£¬¶¼ÊÇ»ùÓÚJNI¼¼ÊõµÄÒÀÀµWindowsµÄʵÏÖ£¬Ê¹µÃÔÚWindowsƽ̨ÏÂʹÓÃCOMºÍDLLµÄ¸ü¼Ó·½±ã¡£
ÏÂÃæ£¬ÎÒÃÇÀ´Ïêϸ½éÉÜÒ»ÏÂʹÓÃJNIÀ´ÊµÏÖJavaÓëC/C++Ö®¼äµÄµ÷Óá£
Ò»¡¢ JNI¼ò½é
JNIÊÇJava Native InterfaceµÄËõд¡£´ÓJava 1.1¿ªÊ¼£¬Java Native Interface(JNI)±ê×¼³ÉΪjavaƽ̨µÄÒ»²¿·Ö£¬ËüÔÊÐíJava´úÂëºÍÆäËûÓïÑÔдµÄ´úÂë½øÐн»»¥¡£JNIÒ»¿ªÊ¼ÊÇΪÁ˱¾µØÒѱàÒëÓïÑÔ£¬ÓÈÆäÊÇCºÍC++¶øÉè¼ÆµÄ£¬µ«ÊÇËü²¢²»·Á°ÄãʹÓÃÆäËûÓïÑÔ£¬Ö»Òªµ÷ÓÃÔ¼¶¨ÊÜÖ§³Ö¾Í¿ÉÒÔÁË¡£
sunÏà¹ØÎĵµ£ºhttp://java.sun.com/j2se/1.5.0/docs/guide/jni/spec/jniTOC.htm ......