̸µ½EclipseÕâ¸ö¿ªÔ´IDE£¬´ó¼Ò¶¼»áDZÒâʶµØ°ÑËüºÍJAVA¿ª·¢ÁªÏµÆðÀ´¡£Ã»´í£¬EclipseÓÃÓÚJAVA applicationµÄ¿ª·¢ÊÇĿǰµÄÖ÷Á÷£¬¶øÇÒËü±¾ÉíÒ²ÊÇÐèÒªJRE²ÅÄÜÔËÐеģ¬Òò¶øÎÞÂÛÔõô¿´Eclipse¶¼ÓëJAVAÓÐÃܲ»¿É·ÖµÄÁªÏµ¡£ µ«Êµ¼ÊÉÏEclipseÖ»ÊÇÒ»¸ö¿ª·¢»·¾³£¬Ò»¸öΪ³ÌÐòÔ±ÌṩµÄ¿ò¼Ü£¬ÓëÓïÑÔ²¢ÎÞÖ±½ÓÁªÏµ¡£×Ô´Ó2001ÄêIBM½«Eclipse¾èÏ׳öÀ´ºó£¬¸ÃÏîÄ¿µÃµ½Á˼«´ó·¢Õ¹£¬Ö±ÖÁĿǰ´úºÅΪGALILEOµÄ×îа汾¡£¸üÎªÖØÒªµÄÊÇ£¬ËüµÃµ½Á˱³ºó²å¼þ¿ª·¢Ç¿ÓÐÁ¦µÄÖ§³Ö£¬Òò¶ø¹¦ÄܸüÇ÷ÓÚÍêÉÆ¡£ÉõÖÁ£¬Í¨¹ýÏòEclipse¼ÓÈëCDT plug-in£¬ÎÒÃÇ¿ÉÒÔÔÚ¸ÃÆ½Ì¨Ï´ÓÊÂC/C++³ÌÐòµÄ¿ª·¢£¬ÕâÎÞÒÉÓַḻÁËÎÒÃǶԿª·¢Æ½Ì¨µÄÑ¡Ôñ¡£
ÒÔǰÔÚWindows»·¾³ÏÂдC/C++³ÌÐòÒ»Ö±ÓõͼÊÇVisual Studio£¬µ«½üЩÄêMicrosoft¶ÔIDEµÄ¸Ä½øÖØÐͼÔÚ.NET FrameworkÉÏ£¬C++ûÓеõ½Ó¦ÓеÄÖØÊÓ¡£Ã»Óй¤³ÌÄ£°å£¬ÖÇÄÜÌáʾ²»ÍêÉÆ£¬ÒÔÖÂÓڸоõÓÃVisual Studio±à¼C++³ÌÐòºÍÓüÇʱ¾Ã»É¶Çø±ð£¬µÄÈ·ºÜ¿É±¯¡£×òÌìMicrosoftÕýʽ·¢²¼ÁËVisual Studio 2010Õýʽ°æ£¬ÊÔÓøоõ¸Ä½øÍ¦³öÉ«£¬µ«ÊÇÕâ¼Ò»ïÕ¼ÓõÄϵͳ¿Õ¼äʵÔÚÌ«´ó£¬ÅªµÃÎÒÓÖÊÇɾ³ýVS2008ÓÖÊÇÖØÐÂÓ²ÅÌ»®Çø¡£Ö®Ç°×°¹ýCygwin£¬¼òµ¥µÄ³ÌÐòÓÃGCC»òÊÇG++±àÒëÊǸö·Ç³£²»´íµÄÑ¡Ôñ£¬µ«³ÌÐòÒ»µ©¸´ÔÓÆðÀ´de ......
̸µ½EclipseÕâ¸ö¿ªÔ´IDE£¬´ó¼Ò¶¼»áDZÒâʶµØ°ÑËüºÍJAVA¿ª·¢ÁªÏµÆðÀ´¡£Ã»´í£¬EclipseÓÃÓÚJAVA applicationµÄ¿ª·¢ÊÇĿǰµÄÖ÷Á÷£¬¶øÇÒËü±¾ÉíÒ²ÊÇÐèÒªJRE²ÅÄÜÔËÐеģ¬Òò¶øÎÞÂÛÔõô¿´Eclipse¶¼ÓëJAVAÓÐÃܲ»¿É·ÖµÄÁªÏµ¡£ µ«Êµ¼ÊÉÏEclipseÖ»ÊÇÒ»¸ö¿ª·¢»·¾³£¬Ò»¸öΪ³ÌÐòÔ±ÌṩµÄ¿ò¼Ü£¬ÓëÓïÑÔ²¢ÎÞÖ±½ÓÁªÏµ¡£×Ô´Ó2001ÄêIBM½«Eclipse¾èÏ׳öÀ´ºó£¬¸ÃÏîÄ¿µÃµ½Á˼«´ó·¢Õ¹£¬Ö±ÖÁĿǰ´úºÅΪGALILEOµÄ×îа汾¡£¸üÎªÖØÒªµÄÊÇ£¬ËüµÃµ½Á˱³ºó²å¼þ¿ª·¢Ç¿ÓÐÁ¦µÄÖ§³Ö£¬Òò¶ø¹¦ÄܸüÇ÷ÓÚÍêÉÆ¡£ÉõÖÁ£¬Í¨¹ýÏòEclipse¼ÓÈëCDT plug-in£¬ÎÒÃÇ¿ÉÒÔÔÚ¸ÃÆ½Ì¨Ï´ÓÊÂC/C++³ÌÐòµÄ¿ª·¢£¬ÕâÎÞÒÉÓַḻÁËÎÒÃǶԿª·¢Æ½Ì¨µÄÑ¡Ôñ¡£
ÒÔǰÔÚWindows»·¾³ÏÂдC/C++³ÌÐòÒ»Ö±ÓõͼÊÇVisual Studio£¬µ«½üЩÄêMicrosoft¶ÔIDEµÄ¸Ä½øÖØÐͼÔÚ.NET FrameworkÉÏ£¬C++ûÓеõ½Ó¦ÓеÄÖØÊÓ¡£Ã»Óй¤³ÌÄ£°å£¬ÖÇÄÜÌáʾ²»ÍêÉÆ£¬ÒÔÖÂÓڸоõÓÃVisual Studio±à¼C++³ÌÐòºÍÓüÇʱ¾Ã»É¶Çø±ð£¬µÄÈ·ºÜ¿É±¯¡£×òÌìMicrosoftÕýʽ·¢²¼ÁËVisual Studio 2010Õýʽ°æ£¬ÊÔÓøоõ¸Ä½øÍ¦³öÉ«£¬µ«ÊÇÕâ¼Ò»ïÕ¼ÓõÄϵͳ¿Õ¼äʵÔÚÌ«´ó£¬ÅªµÃÎÒÓÖÊÇɾ³ýVS2008ÓÖÊÇÖØÐÂÓ²ÅÌ»®Çø¡£Ö®Ç°×°¹ýCygwin£¬¼òµ¥µÄ³ÌÐòÓÃGCC»òÊÇG++±àÒëÊǸö·Ç³£²»´íµÄÑ¡Ôñ£¬µ«³ÌÐòÒ»µ©¸´ÔÓÆðÀ´de ......
ÊÕ¼¯ÁË¿´Ò»ÏÂC/C++±ê×¼¿âʹÓõÄÏà¹ØÍøÕ¾£º
GNU¹ÙÍø£º
http://www.gnu.org/
¸ÃÍøÕ¾°üº¬C/C++±ê×¼¿âµÄʹÓ÷¶Àý£¬ÖµµÃ²Î¿¼£º
http://www.cplusplus.com/
ÔÚǶÈëʽµÚÈý·½Èí¼þÒÆÖ²Ê±£¬»áʹÓÃSTLÄ£°å¿â×÷ÏàÓ¦ÒÆÖ²£¬ÈçAndroidƽ̨JNI·â×°¼°ÒÆÖ²µÈ¡£
¸ÃÍøÕ¾½éÉÜstlportµÄʹÓã¬stlportÒѿɳɹ¦ÒÆÖ²ÖÁAndroidµÈǶÈëʽƽ̨£¬²¢ÇÒ³ÉΪǶÈëʽµÚÈý·½Èí¼þÒÆÖ²¿ª·¢²»¿É»òȱµÄÒ»²¿·Ö¡£
http://www.stlport.org/
http://www.sgi.com/tech/stl/
http://www.cppreference.com/wiki/stl/start
......
ÊÕ¼¯ÁË¿´Ò»ÏÂC/C++±ê×¼¿âʹÓõÄÏà¹ØÍøÕ¾£º
GNU¹ÙÍø£º
http://www.gnu.org/
¸ÃÍøÕ¾°üº¬C/C++±ê×¼¿âµÄʹÓ÷¶Àý£¬ÖµµÃ²Î¿¼£º
http://www.cplusplus.com/
ÔÚǶÈëʽµÚÈý·½Èí¼þÒÆÖ²Ê±£¬»áʹÓÃSTLÄ£°å¿â×÷ÏàÓ¦ÒÆÖ²£¬ÈçAndroidƽ̨JNI·â×°¼°ÒÆÖ²µÈ¡£
¸ÃÍøÕ¾½éÉÜstlportµÄʹÓã¬stlportÒѿɳɹ¦ÒÆÖ²ÖÁAndroidµÈǶÈëʽƽ̨£¬²¢ÇÒ³ÉΪǶÈëʽµÚÈý·½Èí¼þÒÆÖ²¿ª·¢²»¿É»òȱµÄÒ»²¿·Ö¡£
http://www.stlport.org/
http://www.sgi.com/tech/stl/
http://www.cppreference.com/wiki/stl/start
......
ÕâÆªÈÕÖ¾»¹ÊÇÏÈ´ÓÒ»¸öÄܹ»ÔËÐÐÆðÀ´µÄÀý×Ó³ö·¢£¬Ò»µ©ÄÜ˳ÀûµÄ¿´µ½³ÌÐòµÄ³É¹¦ÔËÐУ¬ÄÇô½ÓÏÂÀ´µÄʼþÎÒÏëÓ¦¸ÃÊÇÎÊΪʲôÁË£¿ËƺõÕâÑù¸ü¼ÓÈÝÒ×Àí½âºÍÕÆÎÕ¡£
¶ÔÓÚsocket³ÌÐòµÄ¸ÅÄîÕâÀï¾Í²»¶àдÁË£¬µ«ÎÒÏàÐÅ£¬Èç¹ûÄÜ¿´ÍêÕâÕûƪÎÄÕ£¬ÎÒÏàÐŲ»»áÔÙÓÐÕâÑùµÄÒÉÎʵġ£
ÏÂÃæ½«±àдһ¸öc/s½á¹¹µÄ³ÌÐò£¬Ö÷Òª¹¦ÄÜÊÇclient½«Ïòserver·¢ËÍһЩÏûÏ¢£¬¶øµ±serverÊÕµ½clientµÄÇëÇóʱ£¬²¢Ïòclient·¢ËÍÒ»Ìõ»ØÓ¦ÐÅÏ¢¡£
server.c´úÂëÈçÏ£º
#include <stdio .h>
#include < stdlib .h>
#include < errno .h>
#include < string .h>
#include < sys /types.h>
#include < netinet /in.h>
#include < sys /socket.h>
#include < sys /wait.h>
#define SERVPORT 3333
#define BACKLOG 10
#define MAXSIZE 1024
int main() {
int sockfd,client_fd;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
//´´½¨Ì×½Ó×Ö
if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) {
&nbs ......
ÕâÆªÈÕÖ¾»¹ÊÇÏÈ´ÓÒ»¸öÄܹ»ÔËÐÐÆðÀ´µÄÀý×Ó³ö·¢£¬Ò»µ©ÄÜ˳ÀûµÄ¿´µ½³ÌÐòµÄ³É¹¦ÔËÐУ¬ÄÇô½ÓÏÂÀ´µÄʼþÎÒÏëÓ¦¸ÃÊÇÎÊΪʲôÁË£¿ËƺõÕâÑù¸ü¼ÓÈÝÒ×Àí½âºÍÕÆÎÕ¡£
¶ÔÓÚsocket³ÌÐòµÄ¸ÅÄîÕâÀï¾Í²»¶àдÁË£¬µ«ÎÒÏàÐÅ£¬Èç¹ûÄÜ¿´ÍêÕâÕûƪÎÄÕ£¬ÎÒÏàÐŲ»»áÔÙÓÐÕâÑùµÄÒÉÎʵġ£
ÏÂÃæ½«±àдһ¸öc/s½á¹¹µÄ³ÌÐò£¬Ö÷Òª¹¦ÄÜÊÇclient½«Ïòserver·¢ËÍһЩÏûÏ¢£¬¶øµ±serverÊÕµ½clientµÄÇëÇóʱ£¬²¢Ïòclient·¢ËÍÒ»Ìõ»ØÓ¦ÐÅÏ¢¡£
server.c´úÂëÈçÏ£º
#include <stdio .h>
#include < stdlib .h>
#include < errno .h>
#include < string .h>
#include < sys /types.h>
#include < netinet /in.h>
#include < sys /socket.h>
#include < sys /wait.h>
#define SERVPORT 3333
#define BACKLOG 10
#define MAXSIZE 1024
int main() {
int sockfd,client_fd;
struct sockaddr_in my_addr;
struct sockaddr_in remote_addr;
//´´½¨Ì×½Ó×Ö
if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) {
&nbs ......
¸ÅÊö¡¡¡¡
extern "C" °üº¬Ë«Öغ¬Ò壬´Ó×ÖÃæÉϼ´¿ÉµÃµ½£ºÊ×ÏÈ£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“extern”µÄ£»Æä´Î£¬±»ËüÐÞÊεÄÄ¿±êÊÇ“C”µÄ¡£ÈÃÎÒÃÇÀ´Ïêϸ½â¶ÁÕâÁ½Öغ¬Òå¡£
¡¡¡¡£¨1£© ±»extern "C"ÏÞ¶¨µÄº¯Êý»ò±äÁ¿ÊÇexternÀàÐ͵Ä
¡¡¡¡externÊÇC/C++ÓïÑÔÖбíÃ÷º¯ÊýºÍÈ«¾Ö±äÁ¿×÷Ó÷¶Î§£¨¿É¼ûÐÔ£©µÄ¹Ø¼ü×Ö£¬¸Ã¹Ø¼ü×Ö¸æËß±àÒëÆ÷£¬ÆäÉùÃ÷µÄº¯ÊýºÍ±äÁ¿¿ÉÒÔÔÚ±¾Ä£¿é»òÆäËüÄ£¿éÖÐʹÓ᣼Çס£¬ÏÂÁÐÓï¾ä£º
¡¡¡¡extern int a;
¡¡¡¡½ö½öÊÇÒ»¸ö±äÁ¿µÄÉùÃ÷£¬Æä²¢²»ÊÇÔÚ¶¨Òå±äÁ¿a£¬²¢Î´Îªa·ÖÅäÄÚ´æ¿Õ¼ä¡£±äÁ¿aÔÚËùÓÐÄ£¿éÖÐ×÷ΪһÖÖÈ«¾Ö±äÁ¿Ö»Äܱ»¶¨ÒåÒ»´Î£¬·ñÔò»á³öÏÖÁ¬½Ó´íÎó¡£
¡¡¡¡Í¨³££¬ÔÚÄ£¿éµÄÍ·ÎļþÖжԱ¾Ä£¿éÌṩ¸øÆäËüÄ£¿éÒýÓõĺ¯ÊýºÍÈ«¾Ö±äÁ¿ÒԹؼü×ÖexternÉùÃ÷¡£ÀýÈ磬Èç¹ûÄ£¿éBÓûÒýÓøÃÄ£¿éAÖж¨ÒåµÄÈ«¾Ö±äÁ¿ºÍº¯ÊýʱֻÐè°üº¬Ä£¿éAµÄÍ·Îļþ¼´¿É¡£ÕâÑù£¬Ä£¿éBÖе÷ÓÃÄ£¿éAÖеĺ¯Êýʱ£¬ÔÚ±àÒë½×¶Î£¬Ä£¿éBËäÈ»ÕÒ²»µ½¸Ãº¯Êý£¬µ«ÊDz¢²»»á±¨´í£»Ëü»áÔÚÁ¬½Ó½×¶ÎÖдÓÄ£¿éA±àÒëÉú³ÉµÄÄ¿±ê´úÂëÖÐÕÒµ½´Ëº¯Êý¡£
¡¡¡¡Óëextern¶ÔÓ¦µÄ¹Ø¼ü×ÖÊÇstatic£¬±»ËüÐÞÊεÄÈ«¾Ö±äÁ¿ºÍº¯ÊýÖ»ÄÜÔÚ±¾Ä£¿éÖÐʹÓá£Òò´Ë£¬Ò»¸öº¯Êý»ò±äÁ¿Ö»¿ÉÄܱ»±¾Ä£¿éʹÓÃʱ£¬Æä²»¿ÉÄܱ»extern “C”ÐÞ ......
http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/mexfunction.html
mexFunction (C and Fortran) -
Entry point to C/C++ or Fortran MEX-file
C Syntax
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[]);
Fortran
Syntax
subroutine mexFunction(nlhs, plhs, nrhs, prhs)
integer*4 nlhs, nrhs
mwPointer plhs(*), prhs(*)
Arguments
nlhs
Number
of expected output mxArray
s
plhs
Array
of pointers to the expected output mxArray
s
nrhs
Number
of input mxArray
s
prhs
Array of pointers to the
input mxArray
s.
Do not modify any prhs
values in your MEX-file.
Changing the data in these read-only mxArray
s can
produce undesired side effects.
Description
mexFunction
is not a routine you call.
Rather, mexFunction
is the name of the gateway
function in C (subroutine in Fortran) which every MEX-file requires.
When you invoke a MEX-function, MATLAB software finds and loads
the corresponding MEX-file ......
http://www.mathworks.com/access/helpdesk/help/techdoc/apiref/mexfunction.html
mexFunction (C and Fortran) -
Entry point to C/C++ or Fortran MEX-file
C Syntax
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs,
const mxArray *prhs[]);
Fortran
Syntax
subroutine mexFunction(nlhs, plhs, nrhs, prhs)
integer*4 nlhs, nrhs
mwPointer plhs(*), prhs(*)
Arguments
nlhs
Number
of expected output mxArray
s
plhs
Array
of pointers to the expected output mxArray
s
nrhs
Number
of input mxArray
s
prhs
Array of pointers to the
input mxArray
s.
Do not modify any prhs
values in your MEX-file.
Changing the data in these read-only mxArray
s can
produce undesired side effects.
Description
mexFunction
is not a routine you call.
Rather, mexFunction
is the name of the gateway
function in C (subroutine in Fortran) which every MEX-file requires.
When you invoke a MEX-function, MATLAB software finds and loads
the corresponding MEX-file ......
¿ª·¢ÔËÐÐÔÚSoCÄÚµÄǶÈëʽ´¦ÀíÆ÷Äں˵ijÌÐòʱ£¬¹¤³ÌʦÓÐÁ½¸öÖ÷ҪĿµÄ£ºÔËÐеÃ×ã¹»¿ì£¬Ê¹´¦ÀíÆ÷ÔËÐÐµÄÆµÂʽµµ½×îµÍ£»ÏûºÄ¾¡Á¿ÉÙµÄÄڴ棬ʹÄڴ濪Ïú½µµ½×îС¡£
¶ÔÓÚ²»Í¬µÄÏîÄ¿£¬ÓÐʱºòÕâÁ½¸öÒòËØµÄÖØÒªÐԻ᲻һÑù¡£ÏÂÃæÁ½¸ö¹Ø¼üÒòËØ¼«´óµØÓ°Ïì×ÅÉè¼ÆÍŶÓÂú×ãÕâЩĿ±êµÄÄÜÁ¦£º¿ª·¢Ô´³ÌÐòµÄ±àÒëÆ÷¶Ô´úÂëµÄÓÅ»¯Ð§ÂÊÒÔ¼°ÓÃÓÚ¿ª·¢Ô´´úÂëµÄ±à³Ì·ç¸ñ¡£±¾ÎĽ«ÉîÈëµØÌÖÂÛÕâÁ½ÖÖÒòËØ£¬²¢Ìá³öһЩ´´½¨Ð¡¶ø¿ìµÄC³ÌÐòµÄ½¨Òé¡£
±àÒëÆ÷ÔÀí
±àÒëÆ÷ͨ³£ÊÇÓÉǰ¶ËºÍºó¶ËÁ½²¿·Ö×é³É¡£Ç°¶Ëͨ³£ÊÇÖ¸Óï·¨ºÍÓïÒåµÄ´¦Àí¹ý³Ì£¬ºó¶Ëͨ³£ÊÇÖ¸ÓÅ»¯¡¢´úÂëÉú³É£¬ÒÔ¼°Õë¶ÔÌØ¶¨´¦ÀíÆ÷µÄÓÅ»¯¹ý³Ì¡£ºÜ¶àºÃµÄ±àÒëÆ÷ºó¶ËÒÀÀµÓÚ¶à²ãµÄÖмä±íÊö(IR)¡£ÓÅ»¯ºÍ´úÂëÉú³É´Ó¸ß²ã(ÀàÐÍÊäÈë³ÌÐòµÄ¾ä·¨)µ½µÍ²ãÖ𼶵ش«µÝÖмä±íÊö¡£Óë´¦ÀíÆ÷Î޹صÄÓÅ»¯Ò»°ãÇãÏòÓÚÔÚ±àÒë¹ý³ÌµÄÔçÆÚÔڽϸßIR²ãÉÏʵÏÖ£¬¶øÕë¶ÔÌØ¶¨´¦ÀíÆ÷µÄÓÅ»¯Ò»°ãÇãÏòÓÚÔÚ±àÒë¹ý³ÌµÄºóÆÚÔڵͲãIRÉÏÀ´ÊµÏÖ¡£ÐÅϢͨ¹ý²»Í¬IR²ãÏòÏ´«µÝ£¬ÕâÑùµÍ²ãÓÅ»¯¿ÉÒÔ³ä·ÖÀûÓñàÒ ......