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

¹ØÓÚ extern "C"

µ±Õâ¸öÊÀ½ç»¹Ö»ÓÐCµÄʱºò£¬ÊDz»ÐèÒªextern "C"µÄ¡£
µ«ÊÇ£¬µ±C++³öÏÖÖ®ºó£¬ÓÐʱºò£¬ÎÒÃǾÍÐèÒªextern "C"ÁË¡£
ÄǾ¿¾¹ÊÇÔÚʲôÑùµÄÇé¿öÏ£¬ÎÒÃÇÐèÒªÓÃextern "C"ÄØ£¿
ÓÐÈË˵£¬ÊÇΪÁËCÄܹ»µ÷ÓÃC++£¬ÓÐÈË˵ÊÇΪÁËÔÚC++ÖÐÄܵ÷ÓÃCµÄ¿âº¯Êý¡£ÊDz»ÊǰÑÄãŪºýÍ¿ÁË£¿
ÏÈ˵˵extern "C"ÊÇɶ×÷Óðɡ£
extern "C" ÊǸæËßC++±àÒëÆ÷£¬Õâ¸öº¯ÊýÊÇÍêÈ«¼æÈÝCµÄ£¬²»°üº¬C++ÓжøCÖÐûÓеÄÌØÐԵġ£²¢ÇÒ¸æËß±àÒëÆ÷£¬ÔÚÉú³ÉÄ¿±êÎļþµÄʱºò£¬Ê¹ÓÃCµÄ·½Ê½Éú³Éº¯ÊýÃû¡£
ÉÏÃæÕâ¾ä»°ÓÐÁ½¸öÖØµã£¬
µÚÒ»ÊÇ extern "C" Ö»ÓÐ C++±àÒëÆ÷Èϵã¬C±àÒëÆ÷ÊDz»ÈÏʶµÄ¡£
µÚ¶þÊÇ ÓÃCµÄ·½Ê½Éú³Éº¯ÊýÃû¡£Ê²Ã´½Ð "ÓÃCµÄ·½Ê½Éú³Éº¯ÊýÃû"£¿ C++±àÒëÆ÷ºÍC±àÒëÆ÷Éú³Éº¯ÊýÃûµÄ·½Ê½ÊDz»Í¬µÄ¡£ÒòΪC++ÒªÖ§³Öº¯ÊýÖØÔØ£¬ËùÒÔC++±àÒëÆ÷ÔÚÉú³Éº¯ÊýÃûµÄʱºò»á°Ñº¯Êý²ÎÊýµÄÀàÐͼÓÔÚº¯ÊýÃûÖС£¶øC±àÒëÆ÷¾Í±È½Ï¼òµ¥£¬Ö±½ÓÔÚº¯ÊýÃû×Öǰ¼ÓÒ»¸öÏ»®Ï߸㶨¡£
±ÈÈç void foo( int x ); ÕâÑùµÄº¯Êý
C±àÒëÆ÷±àÒë³öÀ´ÔÚ·ûºÅ¿âÖеÄÃû×ÖÊÇ_foo£¬¶øC++±àÒëÆ÷±àÒë³öÀ´ÔÚ·ûºÅ¿âÖеÄÃû×Ö¿ÉÄÜÊÇ _foo_int ÕâÑùµÄ¡£
ÄÇôʹÓà extern "C" ÓÐʲôÒâÒåÄØ£¿
ÎÒ¾õµÃ ”ΪÁËC++ÖÐÄܵ÷ÓÃCµÄ¿âº¯Êý“ ÕâÑùµÄ˵·¨ÊÇÕýÈ·µÄ¡£
Ϊʲô£¿
¿¼ÂÇÏÂÃæµÄÇé¿ö£¬ÄãÓÐÒ»¸öCʵÏֵĿ⣬²¢ÓÃC±àÒëÆ÷±àÒëÉú³É¿âÎļþ¡£
¼ÙÉèÕâ¸ö¿âÀïÓÐÒ»¸öº¯ÊýΪ void foo( int );
ÔÚC++µÄij¸öÀàÖУ¬ÄãÒªÓÃÕâ¸öfooº¯Êý£¬ÄãÔÚC++Ô´ÎļþÖÐÓÃ
extern void foo( int );
ÒýÈë¡£
ÕâÑùÔÚÁ´½ÓµÄʱºò³ö´íÁË¡£
ÒòΪC++±àÒëÆ÷ÔÚ±àÒëC++Ô´ÎļþµÄʱºò£¬ÈÏΪvoid foo( int ); ÔÚ·ûºÅ±íÖÐÓ¦¸ÃÊÇ
_foo_int Õâ¸öÑù×ӵġ£¶øÔÚÁ´½ÓµÄʱºòÕÒ²»µ½_foo_int£¬Ö»ÓÐ_foo¡£ËùÒÔÁ´½Ó³ö´íÁË¡£
Ôõô½â¾öÄØ£¿
extern void foo( int );
¸Ä³É
extern "C" void foo( int );
¾ÍÐÐÀ²¡£
Èç¹ûÊÇÖ±½Óinclude CµÄÍ·ÎļþµÄ£¬ÄÇ¿ÉÒÔÕâÑù
extern "C" {
#include "HeaderOfC.h"
}
ÕâÑùC++±àÒëÆ÷¾ÍÖªµÀ£¬Õâ¸öfooÊÇCµÄº¯Êý£¬Éú³ÉÃû×ÖµÄʱºò²»ÐèÒª´ø²ÎÊý¡£ÕâÑùÁ´½ÓµÄʱºò¾ÍûÎÊÌâÀ²¡£
ÄÇôÔÚ½ñÌ죬ÎÒÃÇдһ¸öCµÄ¿âµÄʱºò£¬µ±È»´æÔÚÎÒÃǵĿⱻC++µÄ³ÌÐòËùʹÓõĿÉÄÜÐÔ¡£
ÎÒÃDz»Ï£ÍûÔÚC++µÄÔ´ÂëÖÐÒýÓÃÎÒÃǵÄÍ·ÎļþµÄʱºò»¹Òª
extern "C" {
#include "yourlib.h"
}
ÕâôÂé·³¡£
ËùÒÔÎÒÃÇÔÚдCµÄ¿âµÄÍ·ÎļþµÄʱºòÖ÷¶¯µÄ¼ÓÉÏÁË extern "C"¡£
µ«ÕâÀïÓÐÒ»¸öÎÊÌ⣬ÒòΪC±àÒëÆ÷²»ÈÏʶextern "C"°¡£¬ËùÒÔ¾ÍÓÐÁË
ºê __cplusplus
¶ÔÓÚC±àÒëÆ÷£¬Ã»Óж¨ÒåÕâ¸öºê£¬¶øC++±àÒëÆ÷¶¨ÒåÁËÕâ¸ö


Ïà¹ØÎĵµ£º

C/C++ ±ÊÊÔ¡¢ÃæÊÔÌâÄ¿´ó»ã×Ü£¨×ª£©

1.ÊDz»ÊÇÒ»¸ö¸¸ÀàдÁËÒ»¸övirtual º¯Êý£¬Èç¹û×ÓÀา¸ÇËüµÄº¯Êý²»¼Óvirtual ,Ò²ÄÜʵÏÖ¶à̬?
virtualÐÞÊηû»á±»ÒþÐμ̳еġ£private Ò²±»¼¯³É£¬Ö»ÊÂÅÉÉúÀàûÓзÃÎÊȨÏÞ¶øÒÑ¡£virtual¿É¼Ó¿É²»¼Ó¡£×ÓÀàµÄ¿Õ¼äÀïÓи¸ÀàµÄËùÓбäÁ¿(static³ýÍâ)¡£Í¬Ò»¸öº¯ÊýÖ»´æÔÚÒ»¸öʵÌå(inline³ýÍâ)¡£×ÓÀา¸ÇËüµÄº¯Êý²»¼Óvirtual ,Ò²ÄÜʵÏÖ¶àÌ ......

¶Á¡¶0 bug C/C++ÉÌÓù¤³ÌÖ®µÀ¡·——¼Ç¼1

Ò»¡¢³ÌÐòÕæÚÐ
1.³ÌÐò¾ÍÊÇ“°áÊý”
       ¶¯×÷£º¶ÁÈ¡——¼¼Êõ——д³ö£¨ÊäÈë——´¦Àí——Êä³ö£©
       Êý¾Ý½á¹¹¾ö¶¨Êý¾ÝÈçºÎ×éÖ¯£¬°á¶¯ÆðÀ´Ð§Âʽϸß
       Ëã·¨ÓïÑÔ¾ ......

ÓÃC/C++³ÌÐò¿ØÖÆ»·¾³±äÁ¿

In C++, how do i go about using setenv to set the display?  I need to set it like this:
export DISPLAY=0.0
1¡¢setenv("DISPLAY",":0.1",1);
If you're calling the xrandr functions from your C++ program, then I would expect setenv() should work for you. The 3rd argument of 1 tells setenv() to ov ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ