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

extern "C" µÄÓÃÒâ

ǰЩÌ죬±à³ÌÐòÊÇÓõ½Á˺ܾÃÒÔǰдµÄC³ÌÐò£¬Ïë°ÑÀïÃæµÄº¯ÊýÀûÓÃÆðÀ´£¬Á¬½Ó·¢ÏÖ³öÏÖÁËÕÒ²»µ½¾ßÌ庯ÊýµÄ´íÎó£º
ÒÔÏÂÊǼÙÉè¾ÉµÄC³ÌÐò¿â
CµÄÍ·Îļþ
/*-----------c.h--------------*/
#ifndef _C_H_
#define _C_H_
extern int add(int x, int y);
#endifCµÄÔ´Îļþ
/*-----------c.c--------------*/
int add(int x, int y){
 return x+y;
}
C++µÄµ÷ÓÃ
/*-----------cpp.cpp--------------*/
#include "c.h"
void main()
{
 add(1, 0);
}
ÕâÑù±àÒë»á²úÉú´íÎócpp.obj : error LNK2001: unresolved external symbol "int __cdecl add(int,int)" (?add@@YAHHH@Z)£¬Ô­ÒòÊÇÕÒ²»µ½addµÄÄ¿±êÄ£¿é
Õâ²ÅÁîÎÒÏëÆðC++ÖØÔØµÄº¯ÊýÃüÃû·½Ê½ºÍCº¯ÊýµÄÃüÃû·½Ê½£¬ÈÃÎÒÃǻعËһϣºCÖк¯Êý±àÒëºóÃüÃû»áÔÚº¯ÊýÃûǰ¼ÓÒÔ"_",±ÈÈçaddº¯Êý±àÒë³ÉobjÎļþʱµÄʵ¼ÊÃüÃûΪ_add£¬¶øc++ÃüÃûÔò²»Í¬£¬ÎªÁËʵÏÖº¯ÊýÖØÔØÍ¬ÑùµÄº¯ÊýÃûaddÒò²ÎÊýµÄ²»Í¬»á±»±àÒë³É²»Í¬µÄÃû×Ö
ÀýÈç
int add(int , int)==>add@@YAHHH@Z,
float add(float , float )==>add@@YAMMM@Z,
ÒÔÉÏÊÇVC6µÄÃüÃû·½Ê½£¬²»Í¬µÄ±àÒëÆ÷»á²»Í¬£¬×ÜÖ®²»Í¬µÄ²ÎÊýͬÑùµÄº¯ÊýÃû½«±àÒë³É²»Í¬Ä¿±êÃû£¬ÒÔ±ãÓÚº¯ÊýÖØÔØÊǵ÷ÓþßÌåµÄº¯Êý¡£
±àÒëcpp.cppÖбàÒëÆ÷ÔÚcppÎļþÖз¢ÏÖadd(1, 0);µÄµ÷Óöøº¯ÊýÉùÃ÷Ϊextern int add(int x, int y);±àÒëÆ÷¾Í¾ö¶¨È¥ÕÒadd@@YAHHH@Z£¬¿ÉϧËûÕÒ²»µ½£¬ÒòΪCµÄÔ´Îļþ°Ñextern int add(int x, int y);±àÒë³É_addÁË£»
ΪÁ˽â¾öÕâ¸öÎÊÌâC++²ÉÓÃÁËextern "C",Õâ¾ÍÊÇÎÒÃǵÄÖ÷Ì⣬ÏëÒªÀûÓÃÒÔǰµÄC³ÌÐò¿â£¬ÄÇôÄã¾ÍҪѧ»áËü£¬ÎÒÃÇ¿ÉÒÔ¿´ÒÔϱê׼ͷÎļþÄã»á·¢ÏÖ£¬ºÜ¶àÍ·Îļþ¶¼ÓÐÒÔϵĽṹ
#ifndef __H
#define __H
#ifdef __cplusplus
extern "C" {
#endif
extern int f1(int, int);
extern int f2(int, int);
extern int f3(int, int);
 
#ifdef __cplusplus
}
#endif
#endif /*__H*/
Èç¹ûÎÒÃÇ·ÂÖÆ¸ÃÍ·Îļþ¿ÉÒԵõ½
#ifndef _C_H_
#define _C_H_
#ifdef __cplusplus
extern "C" {
#endif
extern int add(int, int);
#ifdef __cplusplus
}
#endif
#endif /* _C_H_ */
ÕâÑù±àÒë
/*-----------c.c--------------*/
int add(int x, int y){
return x+y;
}
ÕâʱԴÎļþΪ*.c£¬__cplusplusûÓб»¶¨Ò壬extern "C" {}ÕâʱûÓÐÉúЧ¶ÔÓÚCËû¿´µ½Ö»ÊÇextern int add(int, int);
addº¯Êý±àÒë³É_add(int, int);
¶ø±àÒëc++Ô´Îļþ
/*-----------cp


Ïà¹ØÎĵµ£º

ÓÃCдµÄ3DÃÔ¹¬

          Boss˵£¬Òª¿´OpenGL£¬¿´ÁË¿ìÒ»¸öÔ£¬×ÜËã³öÁ˸öÏñÑùµÄ¶«Î÷£¬ÓÃCдÁ˸ö3DÃÔ¹¬£¬
ËäȻֻÓÐ350ÐÐ
       ´úÂ룬²»¹ý±ßѧ±ßд£¬×ã×ãдÁËÒ»ÖÜʱ¼ä£¬»¹ÊÇСÓгɾ͸е쬻î»î»î£¡
         &n ......

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


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

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

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

c:forEach vaStatus ÊôÐÔ

c:forEach vaStatus ÊôÐÔ
ÓÃc:forEach ÖÐvaStatusµÄÊôÐÔ¿ÉÒÔ»ñµÃµü´úµÄ×ÔÉí״̬£¬È磺
<c:forEach var="" items="" varStatus="status">
<c:out value="${status.index}"/> ´Ë´Îµü´úµÄË÷Òý
<c:out value="${status.count}"/> ÒѾ­µü´úµÄÊýÁ¿
<c:out value="${status.first}"/> ÊÇ·ñÊǵÚÒ» ......

C/C++ÓÚJavaÖ®¼äµÄ»¥Ïàµ÷ÓÃ

ÀûÓÃJNI¼¼Êõ£¬¿ÉÒÔ×öµ½C/C++ÓëJavaÖ®¼äµÄÏ໥µ÷Óá£
1¡¢Javaµ÷ÓÃC/C++½Ó¿Ú
Õâ¸öÊÇJNI×î»ù±¾µÄÓ¦Óã¬JNIÓкܶàÕâ·½ÃæµÄÀý×Ó´úÂë¡£Ò»°ã°ÑC/C++д³É¶¯Ì¬Á´½Ó¿â£»ÔÚJava³ÌÐòÔÚLoadLibrary£¬ÀûÓÃnative½Ó¿Ú£¬¼´¿ÉÍê³Éµ÷Óá£
2¡¢C/C++»Øµ÷Java½Ó¿Ú
ÕâÖÖÓ÷¨£¬JNIµÄÀý×ӱȽÏÉÙ¡£Æäʵ£¬Ò²±È½Ï¼òµ¥£¬JNIÒ²ÌṩÁËÕâÑùµÄ½Ó¿Ú¡ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ