Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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


Ïà¹ØÎĵµ£º

GNU C __attribute__ »úÖÆ¼ò½é

GNU C __attribute__ »úÖÆ¼ò½é
2006-06-17 13:54:00
¡¡±êÇ©£º¡¡¡¡¡¡[ÍÆË͵½¼¼ÊõȦ]
ͻ񻣼
ÔÚѧϰlinuxÄں˴úÂ뼰һЩ¿ªÔ´Èí¼þµÄÔ´Â루È磺DirectFB£©£¬¾­³£¿ÉÒÔ¿´µ½ÓйØ__attribute__µÄÏà¹ØÊ¹Óᣱ¾ÎĽáºÏ×Ô¼ºµÄѧϰ¾­Àú£¬½ÏΪÏêϸµÄ½éÉÜÁË__attribute__Ïà¹ØÓï·¨¼°ÆäʹÓá£
-------------------------------------- ......

¸øC\C++³ÌÐòÔ±µÄ½¨Òé

1£¬C++ÀXºõ²»ÐèÒªÓõ½ºê£¬ÓÃconst»ðenum¶¨ÒåÃ÷ÏԵij£Á¿¡£ÓÃinline±ÜÃ⺯ÊýµÄ¶îÍ⿪Ïú£¬ÓÃtemplateÈ¥¿Ì»­Ò»×庯Êý»òÕßÀàÐÍ£¬ÓÃnamespaceÈ¥±ÜÃâÃû×Ö³åÍ»¡£ÀàÒ²¿ÉÒÔ¡£
2£¬²»ÒªÔÚÄãÐèҪ֮ǰÉêÃ÷Ëü£¬Ê²Ã´Ê±ºòÓÃʲôʱºòÉêÃ÷£¨µ±Äê´ÓC++תCµÄʱºò³ÔÁËÀÏ¿àÁË£©£»
3£¬²»ÒªÓÃmalloc£¨£©£¬new¿ÉÒÔ×öµÄºÜºÃ£¬¶ÔÓÚrealloc£¨£©£¬¿ÉÒÔ ......

³õѧÕ߱ر¸:C ¾­µäÈëÃÅÏêϸ½Ì³Ì


³õѧÕ߱ر¸:C ¾­µäÈëÃÅÏêϸ½Ì³Ì
¹«ÔªÇ°216Äê8ÔÂ2ÈÕ£¬Òâ´óÀû¶«²¿Æ½Ô­£¬Ò»¸ö½Ð×ö¿²ÄáµÄµØ·½£¬Á½Ö§´ó¾ü°Ú¿ªÕóÊÆ£¬×¼±¸¾öÒ»ËÀÕ½¡£Ò»·½ÊÇÓɱ£ÂÞ˹ºÍÍßÂÞÁ½Î»Ö´Õþ¹ÙÂÊÁìµÄÂÞÂíÈË£¬ÁíÒ»·½ÔòÊÇΰ´óµÄ¾üÊÂÌì²ÅººÄá°Î*°Í¿¨ÂÊÁìµÄåÈÌ«»ù¾ü¶Ó¼°ÆäͬÃË¡£ÂÞÂíÈ˳¬¹ý8Íò£¬¶øåÈÌ«»ù½öÓÐ4ÍòÓàÈË¡£È»¶øµ½Á˰øÍí£¬ÂÞÂíÈ˱»³¹µ×»÷°Ü£¬7ÍòÈ˱» ......

C MFCÎı¾Îļþ²Ù×÷

FILE* pFile = fopen("1.txt","w");
fwrite("http://www.886997.com",1,strlen(http://www.886997.com),pFile);
fseek(pFile,0,SEEK_SET); //´ÓÎļþµÄ¿ªÊ¼´¦¸²¸ÇдÈë
char cStr[100];
memset(cStr,0,sizeof(cStr));
fread(cStr,1,100,pFile);
char *pBuf;
fseek(pFile,0,SEEK_END);
int leng = ftell(pFile);
pBuf ......

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ºÅ