¹Û²ì¹ýÈ¥Ò»ÖܺãָţÐÜÖ¤µÄ×ʽðÁ÷Ïò£¬ÆÚ¼ä·Ö±ðÔ¼ÓÐ1800ÍòºÍ850ÍòÔª×ʽð淨Á÷Èëºãָţ֤ºÍÐÜÖ¤£¬ÏÔʾ´óÊÐÔÚ21000µã¹Ø¿ÚÖÁ100ÌìÏßÔ¼21500µã¸½½üÕ·ùÉÏÂäÆÚ¼ä£¬¿´ºÃºÍ¿´å£Á½·½Ãæ¶¼ÓÐÖ§³ÖÕߣ¬Î©ÆÕ±éÒÔ¶ÌÏßÂòÂôΪÖ÷¡£µ±´óÊлØÊÔ21000µã¹Ø¿Ú¸½½üʱ£¬Êг¡ÉϵÄÐÜÖ¤³Ö²Ö¼õÉÙ£¬¶øÅ£Ö¤Ôò¼û×ʽðÁ÷È룻µ±´óÊÐÉý½ü100ÌìÏßÔ¼21500µã¸½½üʱ£¬Å£Ö¤±ã¼µÃ×ʽðÁ÷³ö£¬ÐÜÖ¤Ôò»ñ×ʽð´¹Ç࣬·´Ó³Í¶×ÊÕßÔÚÕâÇø¼äÄÚ²¹×½Ô¼200µãÖÁ400µãµÄÉÏÂ䲨·ù¡£
¡¡¡¡·¨ÐËÑÜÉú¹¤¾ß²¿¶ÊÂ(ÈÕ±¾³ýÍâ)Àî½õ¹ýÈ¥Ò»ÖÜ£¬ÎÑÂÖºÍÅ£ÐÜÖ¤³É½»¶î¾ùËæ´óÊÐËõ¼õ£¬Æ½¾ùÿÈճɽ»¶î·Ö±ðÔ¼94ÒÚºÍ38ÒÚÔª¡£ÏÖʱÊг¡Éϳɽ»½Ï»îÔ¾µÄºãָţ֤£¬ÊջؼÛÔ¼20200µãÖÁ20700µã¸½½ü£¬´ËÇøÓòÀÛ»ý½Ö»õ±ÈÀýÒ²½Ï¸ß£»¶øÐÜÖ¤ÔòÒÔÊջؼÛÔ¼21700µãÖÁ22000µã¸½½üµÄ½ÏÊÜͶ×ÊÕß»¶Ó£¬Í¬ÑùÒ²ÊÇͶ×ÊÕß¡¸×ø¡¹»õ×ö壵ĺËÐÄ·¶Î§¡£
¡¡¡¡¹É·ÝÎÑÂÖ·½Ã棬½üÆÚÒÔÖÐÊÙ(2628)ºÍ»ã¿Ø(0005)ÎÑÂÖ¼µÃ½Ï´óµÄ×ʽðÁ÷£¬¶íÂÞ˹»õÔËÔËÊäÆäËû¹É·ÝÎÑÂ֯ձ鯫¾²¡£ÖÐÊÙÉÏÖܳõÉϵ÷Ó¯ÀûÔö³¤Ô¤²â£¬ÎüÒý×ʽðÁ÷ÈëÈϹºÖ¤£¬¹ýÈ¥Ò»ÖÜԼ¼µÃ6200ÍòÔª淨Á÷Èë×ʽð£»ÖÁÓÚ»ã¿ØÈϹºÖ¤£¬ÔòÒò¹É¼Û³ÖÐøÆ£Èõ£¬³ÖÐøÓÐͶ×ÊÕßÈëÊв©·´µ¯ËùÖ¡£ÖÁÓÚÄÚÒø¹É£¬½¨ÐÐ(0939)¡¢¹¤ÐÐ (1398)ºÍÖÐÐ ......
externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×ÖËü¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓá£
1¡£¶ÔÓÚextern±äÁ¿À´Ëµ£¬½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå·ÖÅäÄÚ´æ¿Õ¼ä¡£Èç¹û¸Ã±äÁ¿¶¨Òå¶à´Î£¬»áÓÐÁ¬½Ó´íÎó
2¡£Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõĺ¯ÊýºÍÈ«¾Ö±äÁ¿ÒԹؼü×ÖexternÉùÃ÷¡£Ò²¾ÍÊÇ˵cÎļþÀïÃæ¶¨Ò壬Èç¹û¸Ãº¯Êý»òÕß±äÁ¿Ó뿪·Å¸øÍâÃæ£¬ÔòÔÚhÎļþÖÐÓÃextern¼ÓÒÔÉùÃ÷¡£ËùÒÔÍⲿÎļþÖ»ÓÃinclude¸ÃhÎļþ¾Í¿ÉÒÔÁË¡£¶øÇÒ±àÒë½×¶Î£¬ÍâÃæÊÇÕÒ²»µ½¸Ãº¯ÊýµÄ£¬µ«ÊDz»±¨´í¡£link½×¶Î»á´Ó¶¨ÒåÄ£¿éÉú³ÉµÄÄ¿±ê´úÂëÖÐÕÒµ½´Ëº¯Êý¡£
3¡£Óëextern¶ÔÓ¦µÄ¹Ø¼ü×ÖÊÇstatic£¬±»ËüÐÞÊεÄÈ«¾Ö±äÁ¿ºÍº¯ÊýÖ»ÄÜÔÚ±¾Ä£¿éÖÐʹÓá£
¡¡¡¡±»extern "C"ÐÞÊεıäÁ¿ºÍº¯ÊýÊǰ´ÕÕCÓïÑÔ·½Ê½±àÒëºÍÁ¬½ÓµÄ£»
δ¼Óextern “C”ÉùÃ÷ʱµÄ±àÒ뷽ʽ
¡¡¡¡Ê×ÏÈ¿´¿´C++ÖжÔÀàËÆCµÄº¯ÊýÊÇÔõÑù±àÒëµÄ¡£
¡¡¡¡×÷ΪһÖÖÃæÏò¶ÔÏóµÄÓïÑÔ£¬C++Ö§³Öº¯ÊýÖØÔØ£¬¶ø¹ý³ÌʽÓïÑÔCÔò²»Ö§³Ö¡£º¯Êý±»C++±àÒëºóÔÚ·ûºÅ¿âÖеÄÃû×ÖÓëCÓïÑԵIJ»Í¬¡£ÀýÈ磬¼ÙÉèij¸öº¯ÊýµÄÔÐÍΪ£º
void foo( int x, int y );
¡¡¡¡¸Ãº¯Êý±»C±àÒëÆ÷±àÒëºóÔÚ·ûºÅ¿âÖеÄÃû×ÖΪ_foo£¬¶øC+ ......
#include "windows.h"
void main()
{
MessageBox(NULL, "ÄãºÃ°¡£¡", "Ìáʾ", MB_OK);
return 0;
}
ͨ¹ýwindows.hÎļþµ÷ÓÃwindows×Ô´øµÄapiº¯ÊýMessageBox£¬À´Íê³ÉÌáʾ¿ò£¬Ð§¹û°ô
null±íʾ¸½ÊôµÄ´°ÌåΪ¿Õ
MB_OK±íʾ¶Ô»°¿òµÄÀàÐÍ ......
±àÕß°´
:·Ç³£»ù±¾¹ØÓÚCÓïÑÔµÄÎÊÌâ,Ò»¸öÐÅÏ¢Àà(¼ÆËã»ú,×ÊѶ¹¤³Ì,µç×Ó¹¤³Ì, ͨÐŹ¤³Ì)רҵµÄ±¾¿Æ±ÏÒµÉúÓ¦¸Ã´ïµ½µÄˮƽ¡£ÌâÄ¿²»ÄÑ,È«²¿¶¼ÄÜ¿ìËٵشðÍ꣬µ±È»Ò²ÐèÒªÒ»¶¨µÄ֪ʶ´¢±¸¡£
¶ÔÓÚ´ó¶àÊýÈË£¬ÎÒÃÇÔ¤ÆÚÄã¿ÉÄÜ´ð´í 3) 4) 15)Ì⣬ËùÒÔ´ð´í3µÀÒÔÄڵģ¬ÎÒÃÇÈÏΪÄãºÜ°ô
´ð´í5µÀÌâÒÔÄÚ£¬ÎÒÃÇÈÏΪÄ㻹²»´í(Ä㻹¿ÉÄÜ´ð´íµÚ9Ìâ)
Èç¹ûÄãÓÐ6µÀÒÔÉϵÄÌâÄ¿²»ÄÜ´ð¶Ô,»ù±¾ÉÏÎÒÃǶ¼²»ºÃ˵ʲôÁË....
Ô¼¶¨:
1) ÏÂÃæµÄ²âÊÔÌâÖУ¬ÈÏΪËùÓбØÐëµÄÍ·Îļþ¶¼ÒѾÕýÈ·µÄ°üº¬ÁË
2)Êý¾ÝÀàÐÍ
char Ò»¸ö×Ö½Ú 1 byte
int Á½¸ö×Ö½Ú 2 byte (16λϵͳ£¬ÈÏΪÕûÐÍÊÇ2¸ö×Ö½Ú)
long int Ëĸö×Ö½Ú 4 byte
float Ëĸö×Ö½Ú4 byet
double °Ë¸ö×Ö½Ú 8 byte
long double Ê®¸ö×Ö½Ú 10 byte
pointer Á½¸ö×Ö½Ú 2 byte(×¢Ò⣠......
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػáά»¤Ò»¸öÈÎÎñÁ´±í(ÿ¸öCThread_worker½á¹¹¾ÍÊÇÒ»¸öÈÎÎñ)¡£
pool_init()º¯ÊýÔ¤ÏÈ´´½¨ºÃmax_thread_num¸öỊ̈߳¬Ã¿¸öÏß³ÌÖ´thread_routine ()º¯Êý¡£¸Ãº¯ÊýÖÐ
1. while (pool->cur_queue_size == 0)
2. {
3. pthread_cond_wait (&(pool->queue_ready),&(pool->queue_lock));
4. }
±íʾÈç¹ûÈÎÎñÁ´±íÖÐûÓÐÈÎÎñ£¬Ôò¸ÃÏ̳߳öÓÚ×èÈûµÈ´ý״̬¡£·ñÔò´Ó¶ÓÁÐÖÐÈ¡³öÈÎÎñ²¢Ö´ÐС£
pool_add_worker()º¯ÊýÏòÏ̳߳صÄÈÎÎñÁ´±íÖмÓÈëÒ»¸öÈÎÎñ£¬¼ÓÈëºóͨ¹ýµ÷ÓÃpthread_cond_signal (&(pool->queue_ready))»½ÐÑÒ»¸ö³öÓÚ×èÈû״̬µÄÏß³Ì(Èç¹ûÓеϰ)¡£
&nbs ......
ʲôʱºòÐèÒª´´½¨Ï̳߳ØÄØ£¿¼òµ¥µÄ˵£¬Èç¹ûÒ»¸öÓ¦ÓÃÐèҪƵ·±µÄ´´½¨ºÍÏú»ÙỊ̈߳¬¶øÈÎÎñÖ´ÐеÄʱ¼äÓַdz£¶Ì£¬ÕâÑùÏ̴߳´½¨ºÍÏú»ÙµÄ´øÀ´µÄ¿ªÏú¾Í²»ÈݺöÊÓ£¬ÕâʱҲÊÇÏ̳߳ظóö³¡µÄ»ú»áÁË¡£Èç¹ûÏ̴߳´½¨ºÍÏú»Ùʱ¼äÏà±ÈÈÎÎñÖ´ÐÐʱ¼ä¿ÉÒÔºöÂÔ²»¼Æ£¬ÔòûÓбØÒªÊ¹ÓÃÏ̳߳ØÁË¡£
ÏÂÃæÊÇLinuxϵͳÏÂÓÃCÓïÑÔ´´½¨µÄÒ»¸öÏ̳߳ء£Ï̳߳ػáά»¤Ò»¸öÈÎÎñÁ´±í(ÿ¸öCThread_worker½á¹¹¾ÍÊÇÒ»¸öÈÎÎñ)¡£
pool_init()º¯ÊýÔ¤ÏÈ´´½¨ºÃmax_thread_num¸öỊ̈߳¬Ã¿¸öÏß³ÌÖ´thread_routine ()º¯Êý¡£¸Ãº¯ÊýÖÐ
1. while (pool->cur_queue_size == 0)
2. {
3. pthread_cond_wait (&(pool->queue_ready),&(pool->queue_lock));
4. }
±íʾÈç¹ûÈÎÎñÁ´±íÖÐûÓÐÈÎÎñ£¬Ôò¸ÃÏ̳߳öÓÚ×èÈûµÈ´ý״̬¡£·ñÔò´Ó¶ÓÁÐÖÐÈ¡³öÈÎÎñ²¢Ö´ÐС£
pool_add_worker()º¯ÊýÏòÏ̳߳صÄÈÎÎñÁ´±íÖмÓÈëÒ»¸öÈÎÎñ£¬¼ÓÈëºóͨ¹ýµ÷ÓÃpthread_cond_signal (&(pool->queue_ready))»½ÐÑÒ»¸ö³öÓÚ×èÈû״̬µÄÏß³Ì(Èç¹ûÓеϰ)¡£
&nbs ......
ת×Ô£ºhttp://commandos.blog.51cto.com/154976/130652
Ò»¡¢ »·¾³×¼±¸
ÔÚ±¾ÎÄÖУ¬ËùÓгÌÐò¾ùÔÚLinuxÏ¿ª·¢Íê³É£¬¾²âÊÔÄܹ»Õý³£ÔËÐС£
ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÓõ½gSOAP£¬¿ÉÒÔ´ÓÒÔÏÂÍøÖ·ÏÂÔØ»ñµÃ£º[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
ÎÒÏÂÔØµÄÊÇgsoap_2.7.12.tar.gz
ÏÂÔØÏÂÀ´½âѹËõ£¬°´Õý³£°²×°¹ý³Ì½øÐбàÒë¡¢°²×°¡£
# tar zxvf gsozp_2.7.12.tar.gz
# cd gsoap_2.7.12
# ./configure –-prefix=/usr/local/gSOAP£¨Ö¸¶¨°²×°Â·¾¶£©
# make
# make install
¶þ¡¢ Éú³ÉÏà¹ØÎļþ
1¡¢Í¨¹ýWSDLÎĵµ£¬Éú³ÉC/C++Í·Îļþ
# /usr/local/gSOAP/bin/wsdl2h –c –o TestHeader.h [url]http://192.168.0.151:8080/services/TestWS?wsdl[/url]
2¡¢¿½±´gSOAPÔ´´úÂëÖÐimportÎļþ¼ÐϵÄstlvector.hÎļþµ½TestHeader.hͬһĿ¼£¬Èç¹ûÔÚ½âÎöWSDLÎĵµÊ±Ê¹ÓÃÁË-s²ÎÊý£¬¼´²»Ê¹ÓÃSTL£¬Ôò²»ÐèÒª¿½±´ÕâÒ»Îļþ¡£
3¡¢½âÎöTestHeader.hÎļþ£¬Éú³É´æ¸ù³ÌÐò
# /usr/local/gSOAP/bin/soapcpp2 –c –C TestHeader.h
ÃüÁîÖвÎÊý-c´ú±íÉú³É±ê×¼C³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬ÔòÉú³ÉC++³ÌÐò¡£
ÃüÁîÖвÎÊý-C´ú±í½öÉú³É¿Í»§¶Ë³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬Ô ......
ת×Ô£ºhttp://commandos.blog.51cto.com/154976/130652
Ò»¡¢ »·¾³×¼±¸
ÔÚ±¾ÎÄÖУ¬ËùÓгÌÐò¾ùÔÚLinuxÏ¿ª·¢Íê³É£¬¾²âÊÔÄܹ»Õý³£ÔËÐС£
ÔÚ¿ª·¢¹ý³ÌÖУ¬ÎÒÃÇÐèÒªÓõ½gSOAP£¬¿ÉÒÔ´ÓÒÔÏÂÍøÖ·ÏÂÔØ»ñµÃ£º[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
ÎÒÏÂÔØµÄÊÇgsoap_2.7.12.tar.gz
ÏÂÔØÏÂÀ´½âѹËõ£¬°´Õý³£°²×°¹ý³Ì½øÐбàÒë¡¢°²×°¡£
# tar zxvf gsozp_2.7.12.tar.gz
# cd gsoap_2.7.12
# ./configure –-prefix=/usr/local/gSOAP£¨Ö¸¶¨°²×°Â·¾¶£©
# make
# make install
¶þ¡¢ Éú³ÉÏà¹ØÎļþ
1¡¢Í¨¹ýWSDLÎĵµ£¬Éú³ÉC/C++Í·Îļþ
# /usr/local/gSOAP/bin/wsdl2h –c –o TestHeader.h [url]http://192.168.0.151:8080/services/TestWS?wsdl[/url]
2¡¢¿½±´gSOAPÔ´´úÂëÖÐimportÎļþ¼ÐϵÄstlvector.hÎļþµ½TestHeader.hͬһĿ¼£¬Èç¹ûÔÚ½âÎöWSDLÎĵµÊ±Ê¹ÓÃÁË-s²ÎÊý£¬¼´²»Ê¹ÓÃSTL£¬Ôò²»ÐèÒª¿½±´ÕâÒ»Îļþ¡£
3¡¢½âÎöTestHeader.hÎļþ£¬Éú³É´æ¸ù³ÌÐò
# /usr/local/gSOAP/bin/soapcpp2 –c –C TestHeader.h
ÃüÁîÖвÎÊý-c´ú±íÉú³É±ê×¼C³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬ÔòÉú³ÉC++³ÌÐò¡£
ÃüÁîÖвÎÊý-C´ú±í½öÉú³É¿Í»§¶Ë³ÌÐò£¬ÈôûÓÐÕâ¸ö²ÎÊý£¬Ô ......