Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1768 connectés 

  FORUM HardWare.fr
  Programmation

  C++ et Shellapi.h===>pb de compilation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C++ et Shellapi.h===>pb de compilation

n°49246
Blondin
Posté le 27-07-2001 à 10:03:59  profilanswer
 

Alut les jeunes!!!!!
 
Bon mon blem est simple j'ai un programme en C++ et je veux lancer un point batch à partir de ce programme.Pour celà je met Shellapi.h plus Shellexecute et à la compil Monsieur me fait une erreur de compilation ds Shellapi.h!!!!!!!
 
QQ peut m'aider en m'expliquant pq??.
 
je mets le code :
 
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <Shellapi.h>
 
char main()
{
 
/*Pointe sur le win.ini*/
FILE *par_file;
 
/* Chemin du dossier ou il y les images*/
char path[30]="C:/Mes documents/fond.txt";
char line[10];
 
int cpt=0;
int hasard=0;
long pos=0;
srand( (unsigned)time( NULL ) );
hasard=rand();
while(hasard>=8)
{
printf( "  %6d\n", hasard );
hasard=(rand());
}
printf( "  %6d\n", hasard );
/*Lit le premier mot et initialise line*/
  if( fgets( line, 10, par_file ) == NULL)
   printf( "fgets error\n" );
  else
   printf( "%s", line);
 
/*Boucle permettant le parcour du fichier*/
  for(cpt=0;cpt<hasard;cpt++)
  {
  if(!feof(par_file))
  {  pos=ftell(par_file);
     if( fgets( line, 100, par_file )== NULL)
      printf( "fgets error\n" );
    else
    {     printf( "%s", line);
       printf("%s","cpt vaut\n" );
       printf("%x",cpt);
    }
  }
  }
 if(fseek( par_file,pos,SEEK_SET )==0)
 printf("Le curseur est positionne devant la ligne\n" );
 else printf("Erreur impossible de positionner le curseur\n" );
 
if (cpt==hasard)
  {
  printf("pff\n" );
   fgets( line, 100, par_file);
     printf( "%s", line);
     ShellExecute(0, NULL, "c:/windows/bureau/moi.bat", NULL, NULL, SW_NORMAL);
  }
 
/*Ferme Win.ini*/
if( fclose( par_file ) )
  printf( "The file 'data' was not closed\n" );
else printf( "The file 'data' was closed\n" );
 
return(0);
}

mood
Publicité
Posté le 27-07-2001 à 10:03:59  profilanswer
 

n°49249
seblamb
Posté le 27-07-2001 à 10:09:12  profilanswer
 

Le libélé de l'erreur serait d'une aide précieuse... ;)

n°49253
instantdha​rma
Ailleurs c'est ici
Posté le 27-07-2001 à 10:14:22  profilanswer
 

Une remarque :

Code :
  1. hasard=rand();
  2. while(hasard>=8)
  3. {
  4. printf( "  %6d\n", hasard );
  5. hasard=(rand());
  6. }


T'es jamais sûr de sortir de ta boucle :D


---------------
di. / www.diredaredare.org - Ailes de la ville
n°49258
Blondin
Posté le 27-07-2001 à 10:23:45  profilanswer
 

instantdharma a écrit a écrit :

Une remarque :

Code :
  1. hasard=rand();
  2. while(hasard>=8)
  3. {
  4. printf( "  %6d\n", hasard );
  5. hasard=(rand());
  6. }


T'es jamais sûr de sortir de ta boucle :D  
 
desolé mais j en sors des que rand() me donne un chiffre inférieur à 8 :)))))))))))))))))



n°49279
Carbon_14
Posté le 27-07-2001 à 11:07:25  profilanswer
 

Dans les shellexecute, faudrait pas mettre
"c:\\windows\\bureau\\moi.bat" avec des anti-slashs (\) et pas des slashs normaux (/" ) ?  :??:

n°49281
instantdha​rma
Ailleurs c'est ici
Posté le 27-07-2001 à 11:12:15  profilanswer
 

blondin a écrit  

Citation :


desolé mais j en sors des que rand() me donne un chiffre inférieur à 8


C'est indéniable, mais ta fonction rand renvoie un nombre pris au hasard, et rien ne te garantit que tu obtiendras un jour un nombre inférieur à 8. Tu sortiras donc de ta boucle par hasard :D et tu testeras la suite du programme par hasard :D  

Citation :


 :D Jamais un coup de rand() n'abolira le hasard  :D  


---------------
di. / www.diredaredare.org - Ailes de la ville
n°49311
instantdha​rma
Ailleurs c'est ici
Posté le 27-07-2001 à 12:49:41  profilanswer
 

:D  
Ca m'interpelle quelque part, ta boucle à sortie aléatoire...
D'abord, ta fonction rand(), elle renvoie un nombre compris dans quelles bornes ?
Supposons que cette fonction te renvoie un nombre compris entre 0 et N.
La probabilité de sortie de la boucle est de (N-8)/N à chque itération.... :D  
J'avais entendu parler de la logique floue, mais pas des boucles floues... :D un concept novateur s'il en est :D (polémique)


---------------
di. / www.diredaredare.org - Ailes de la ville
n°49339
Blondin
Posté le 27-07-2001 à 14:23:03  profilanswer
 

voici ce que me dit le compilateur
 
c:\program files\microsoft visual studio\vc98\include\shellapi.h(53) : error C2065: 'HDROP' : undeclared identifier
c:\program files\microsoft visual studio\vc98\include\shellapi.h(53) : error C2501: 'DECLARE_HANDLE' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\shellapi.h(55) : error C2146: syntax error : missing ';' before identifier 'UINT'
c:\program files\microsoft visual studio\vc98\include\shellapi.h(55) : error C2501: 'DECLSPEC_IMPORT' : missing storage-class or type specifiers
c:\program files\microsoft visual studio\vc98\include\shellapi.h(55) : fatal error C1004: unexpected end of file found
 
 
Et pour la boucle rand() elle n'a jamais boucler à l'infini....

n°49344
youdontcar​e
Posté le 27-07-2001 à 14:40:38  profilanswer
 

je pense qu'un #include "windows.h" avant shellexecute ne serait pas de trop ...

n°49359
seblamb
Posté le 27-07-2001 à 15:05:27  profilanswer
 

Je pense la même chose, 'UINT' est un type de base de windows qui est inclus des que l'on met windows.h


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  C++ et Shellapi.h===>pb de compilation

 

Sujets relatifs
[C++] compilation de programme qtProblème de compilation
Problème compilation Visual C++[JAVA] Compilation à la ligne de commande
[open GL] pas derreur pas de warnings a la compilation 21 a lexecution[DirectX] Problème avec la compilation
[VC]probleme de compilation[C++] Directive de compilation
C++ --> erreur à la construction (pas à la compilation!)Probleme de compilation en OPENGL!!!!
Plus de sujets relatifs à : C++ et Shellapi.h===>pb de compilation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR