int main (int argc, char** argv)

int main (int argc, char** argv) - C - Programmation

Marsh Posté le 22-04-2004 à 16:49:36    

Je programme sous Embedded Visual C++ en C.
Mon code est compilé et linker sans erreur vers l'emulateur de WinCE.
j'utilise la declaration du titre du post.
Pourquoi quand j'execute mon code, il ne prend pas en compte les paramètres qui suivent la declaration ?  
Sur l'invite de commande de l'émulateur, je tape  
nomdemoncode xx xx  
et il fait comme si je lui passait aucun paramètre !

Reply

Marsh Posté le 22-04-2004 à 16:49:36   

Reply

Marsh Posté le 22-04-2004 à 16:50:48    

vincentx a écrit :

Je programme sous Embedded Visual C++ en C.
Mon code est compilé et linker sans erreur vers l'emulateur de WinCE.
j'utilise la declaration du titre du post.
Pourquoi quand j'execute mon code, il ne prend pas en compte les paramètres qui suivent la declaration ?  
Sur l'invite de commande de l'émulateur, je tape  
nomdemoncode xx xx  
et il fait comme si je lui passait aucun paramètre !


Sans ton code on va avoir du mal à répondre...

Reply

Marsh Posté le 22-04-2004 à 16:52:57    

Le voila  
 

Code :
  1. int main(int argc, char** argv)
  2.     int retcode;
  3.     WSADATA wsaData;
  4.     char** arg;
  5.     if (argc<2)
  6.     goto usage;
  7.    
  8.    
  9.     /* Initialisation */
  10.    if (WSAStartup(MAKEWORD(1,1), &wsaData))
  11.    {
  12.         fprintf(stderr,"%s: You must use Winsock 1.1 or compatible\n",PING_NAME);
  13.         goto error;
  14.     }
  15.     hIcmp = IcmpCreateFile();
  16.  
  17. QueryPerformanceFrequency(&ticks_freq);
  18.     icmp_reply=(struct icmp_echo_reply*)reply_buffer;  // structure définit dans ipexport.h
  19.     retcode=0;
  20.     arg=argv+1;
  21.   while (*arg!=NULL) {
  22.        if ((*arg)[0]=='-') {
  23.             /* Change some option value */
  24.           switch ((*arg)[1]) {
  25.             case 'c':
  26.              
  27.                 arg++;
  28.                 if (sscanf(*arg,"%d",&opt_c)!=1)
  29.                     goto usage;
  30.                 if (opt_c<0)
  31.                     opt_c=DEFAULT_OPT_C_VALUE;
  32.                 options|=F_COUNT;
  33.                 break;
  34.        
  35.             case 'i':
  36.                 /* Sets the interval between two echo requests. */
  37.                 arg++;
  38.                 if (sscanf(*arg,"%d",&opt_i)!=1)
  39.                     goto usage;
  40.                 if (opt_i<0)
  41.                     opt_i=DEFAULT_OPT_I_VALUE;
  42.                 options|=F_INTERVAL;
  43.                 break;
  44.          
  45.             case 'm':
  46.                 /* Sets the TTL to use.
  47.                  */
  48.                 arg++;
  49.               if (sscanf(*arg,"%d",&opt_m)!=1)
  50.                     goto usage;
  51.                 if (opt_m<0)
  52.                     opt_m=DEFAULT_OPT_M_VALUE;
  53.                 options|=F_MAXTTL;
  54.                 break;
  55.            
  56.            
  57.             case 'q':
  58.                 /* Quiet option: only display a summary at the end.
  59.                  * Only valid in ping mode.
  60.                  */
  61.                options|=F_QUIET;
  62.                 break;
  63.          
  64.             case 's':
  65.                 /*
  66.                  * Set the packet size.
  67.                  */
  68.                 arg++;
  69.                 if (sscanf(*arg,"%d",&opt_s)!=1)
  70.                     goto usage;
  71.                 if (opt_s<0)
  72.                     opt_s=DEFAULT_OPT_S_VALUE;
  73.                 options|=F_DATASIZE;
  74.          
  75.                 break;
  76.          
  77.          
  78.             case 'w':
  79.                 /*
  80.                  * Sets the time to wait for a response to an Echo Request
  81.                  */
  82.                 arg++;
  83.                 if (sscanf(*arg,"%d",&opt_w)!=1)
  84.                     goto usage;
  85.                 if (opt_w<0)
  86.                     opt_w=DEFAULT_OPT_W_VALUE;
  87.                 options|=F_TIMEOUT;
  88.                 break;
  89.             case 'z':
  90.                 /*
  91.                  * Fills the ICMP packets with random data
  92.                  */
  93.                 options=(options & ~F_PATTERN) | F_RANDOMFILL;
  94.                 break;
  95.             }
  96.         } else {
  97.             unsigned int host_addr;
  98.             /* Get the target host address */
  99.             host_addr=HostString2Addr(*arg); // host_addr= adr. IP convertit
  100.             if (host_addr==INADDR_NONE)   // erreur
  101.                 retcode=1;       
  102.             else               
  103.                doPing(host_addr,*arg);
  104.  }
  105.         arg++;
  106.  }
  107.     /* Do some cleanup */
  108.     IcmpCloseHandle( hIcmp );   // close an handle open by a call to IcmpCreateFile
  109. WSACleanup();
  110.     free(icmp_data);
  111.    
  112. end:
  113.     return retcode;
  114. error:
  115.     retcode=1;
  116.     goto end;
  117. usage:
  118.     fprintf(stderr,"Usage: ping [-mnqw] [-c count] [-i wait] [-p pattern | -z] [-s packetsize]\n" );
  119.     fprintf(stderr,"            host [host...]\n" );
  120.     fprintf(stderr,"   or  ping -t [-mnqw] [-i wait] [-p pattern | -z] [-s packetsize]\n" );
  121.     fprintf(stderr,"            host [host...]\n" );
  122.     fprintf(stderr,"       The following options are recognised for compatibility with the \n" );
  123.     fprintf(stderr,"       Unix ping but are not implemented: [-dfrRv] [-l preload]\n" );
  124.     retcode=2;
  125.     goto end;
  126. }


Message édité par vincentx le 22-04-2004 à 17:27:47
Reply

Marsh Posté le 22-04-2004 à 16:58:20    

[:daplopbot]


Message édité par kadreg le 22-04-2004 à 16:58:27

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 22-04-2004 à 17:00:57    

cad ?

Reply

Marsh Posté le 22-04-2004 à 17:02:59    

vincentx a écrit :


j'utilise la declaration du titre du post.


 
Faudrait que tu révises le concept de "sujet", le code on le colle par là normalement. Le sujet c'est de quoi parle ton message :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-04-2004 à 17:05:55    

le "int main(int argc, char** argv)" me parait un peu étrange : Les applications consoles sont très rares en CE et de plus le charset natif de CE est l'unicode.
 
Le point d'entrée standard pour un programme Windows CE est:

Code :
  1. int WINAPI WinMain( HINSTANCE hInstance,
  2.     HINSTANCE hPrevInstance,
  3.     LPTSTR    lpCmdLine,
  4.     int       nCmdShow)

Reply

Marsh Posté le 22-04-2004 à 17:06:50    

Désolé mais si pouviez me venir en aide néanmoins, ce serait très courtoit de votre part.

Reply

Marsh Posté le 22-04-2004 à 17:11:29    

je prie pour que Taz ne passe pas ici, ça devrait t'aider déjà pas mal.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-04-2004 à 17:18:46    

Je n'avais pas vu la balise pour inserer le code et je ne comprends pas trop comment ca marche...
excuser moi.

Reply

Marsh Posté le 22-04-2004 à 17:18:46   

Reply

Marsh Posté le 22-04-2004 à 17:21:38    

édite mon message:
 

Code :
  1. mon code


 
voilà, tu peux éditer le tien maintenant.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 22-04-2004 à 17:22:00    

vincentx a écrit :

Je n'avais pas vu la balise pour inserer le code et je ne comprends pas trop comment ca marche...
excuser moi.


tu sélectionnes ton code et tu clickes dessus.
Tu peux encore le faire en éditant ton message...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed