C++ et Shellapi.h===>pb de compilation - Programmation
Marsh Posté le 27-07-2001 à 10:14:22
Une remarque :
Code :
|
T'es jamais sûr de sortir de ta boucle
Marsh Posté le 27-07-2001 à 10:23:45
instantdharma a écrit a écrit : Une remarque :
|
Marsh Posté le 27-07-2001 à 11:07:25
Dans les shellexecute, faudrait pas mettre
"c:\\windows\\bureau\\moi.bat" avec des anti-slashs (\) et pas des slashs normaux (/" ) ?
Marsh Posté le 27-07-2001 à 11:12:15
blondin a écrit
Citation : |
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 et tu testeras la suite du programme par hasard
Citation : |
Marsh Posté le 27-07-2001 à 12:49:41
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....
J'avais entendu parler de la logique floue, mais pas des boucles floues... un concept novateur s'il en est (polémique)
Marsh Posté le 27-07-2001 à 14:23:03
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....
Marsh Posté le 27-07-2001 à 14:40:38
je pense qu'un #include "windows.h" avant shellexecute ne serait pas de trop ...
Marsh Posté le 27-07-2001 à 15:05:27
Je pense la même chose, 'UINT' est un type de base de windows qui est inclus des que l'on met windows.h
Marsh Posté le 27-07-2001 à 10:03:59
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]="CMes 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, "cwindows/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);
}