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

 


Dernière réponse
Sujet : C++ et Shellapi.h===>pb de compilation
seblamb Je pense la même chose, 'UINT' est un type de base de windows qui est inclus des que l'on met windows.h

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
seblamb Je pense la même chose, 'UINT' est un type de base de windows qui est inclus des que l'on met windows.h
youdontcare je pense qu'un #include "windows.h" avant shellexecute ne serait pas de trop ...
Blondin 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....
instantdharma :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)
instantdharma 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  

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

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 :)))))))))))))))))



instantdharma 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

seblamb Le libélé de l'erreur serait d'une aide précieuse... ;)
Blondin 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);
}

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)