Accueil > Forum > > > > WinExec() bug!!!
WinExec() bug!!!
vendredi 30 mai 2003 à 12:31:58 |
WinExec() bug!!!

ad59
|
Bonjour à tous Visualiens C++ Voila mon probléme : je dois via mon application éxécuté plusieurs un utilitaire dos qui permet de modifier des fichiers image au format .tif et donc j'utilise la fonction WinExec() mais ceci je le fais dans une boucle car j'ai des centaines de fichiers à traité hors au bout d'un certain temps (95éme fichier) le programme plante et m'indique un probléme mémoire:"l'adresse xxxxx n'est pas writable" je ne comprends pas et là je suis à bout..... j'ai dejà utilisé la fonction system() =>meme probléme... que dois-je faire? Merci à vous.
|
|
vendredi 30 mai 2003 à 12:40:09 |
Re : WinExec() bug!!!

BruNews
|
WinExec() est a bannir, c'est un reste du temps de Win 3. Il faut utiliser CreateProcess(). Ensuite faut etre certain de l'endroit ou se situe le plantage, avant lancement du prog externe, est-ce lui etc... Tu devrais te faire un fichier log ou tu ecris les passages a certains endroits cles, tu pourras ainsi cerner le probleme. BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Bonjour à tous Visualiens C++ > Voila mon probléme : > je dois via mon application éxécuté plusieurs un utilitaire dos qui permet de modifier des fichiers image au format .tif et donc j'utilise la fonction WinExec() mais ceci je le fais dans une boucle car j'ai des centaines de fichiers à traité hors au bout d'un certain temps (95éme fichier) le programme plante et m'indique un probléme mémoire:"l'adresse xxxxx n'est pas writable" je ne comprends pas et là je suis à bout..... > j'ai dejà utilisé la fonction system() =>meme probléme... > que dois-je faire? Merci à vous.
|
|
mercredi 4 juin 2003 à 13:16:41 |
Toujours CreateProcess()!

ad59
|
Resalut Vieux Lion.. j'ai enfin un résultat mais ça plante toujours voila mon code: arrivé au 228éme fichiers traité il me dit: L'instruction 0x004076a7 emploie l'adresse 0x02937b0 qui ne peut etre written....je suis desespéré tout mes espoirs étaient dans CreateProcess()................ voila mon code:
void Tiffkit(char *Source_Tif, char *Dest_Tif, int X, int Y, int gras, char *chaine) { char *Commande; STARTUPINFO si; PROCESS_INFORMATION pi;
Commande = (char *) malloc(TAILLE_COMMANDE); sprintf(Commande, "%s source=%s, dest=%s, format=512, size=16, x=%d, y=%d, bold=%d,save=0, text=%s", CHEMIN_TIFFKIT, Source_Tif, Dest_Tif, X, Y, gras, chaine); ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) );
// Start the child process. if( !CreateProcess( NULL, Commande, NULL, NULL,FALSE,0,NULL,NULL,&si,&pi)) { printf("Error impossible de creer le process"); exit(1); }
// Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }
Merci de m'éclairer une derniére fois et aprés je t'embête plus merci.
|
|
mercredi 4 juin 2003 à 13:35:19 |
Re : WinExec() bug!!!

ad59
|
Slt! voila j'ai modifié mon code mais au bout du 228 fichier traités ça plante à cause de la mémoire... peux tu m'éclairer voila mon code merci d'avance...:
void Tiffkit(char *Source_Tif, char *Dest_Tif, int X, int Y, int gras, char *chaine) { char *Commande; STARTUPINFO si; PROCESS_INFORMATION pi;
Commande = (char *) malloc(TAILLE_COMMANDE); sprintf(Commande, "%s source=%s, dest=%s, format=512, size=16, x=%d, y=%d, bold=%d,save=0, text=%s", CHEMIN_TIFFKIT, Source_Tif, Dest_Tif, X, Y, gras, chaine); ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) );
// Start the child process. if( !CreateProcess( NULL, Commande, NULL, NULL,FALSE,0,NULL,NULL,&si,&pi)) { printf("Error impossible de creer le process"); exit(1); } // Wait until child process exits. WaitForSingleObject( pi.hProcess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }
Cette fonction je l'appelle autant de fois qu'il y a de fichiers c'est à dire des centaines de fois.... je suis desesperé!!
|
|
mercredi 4 juin 2003 à 13:48:18 |
Re : Toujours CreateProcess()!

BruNews
|
Commande = (char *) malloc(TAILLE_COMMANDE); free(Commande); le pendant de malloc() je ne le vois pas, faut deja que tout le code soit nickel: memoire allouee implique memoire liberee. De plus il faut tester le retour de malloc() != NULL et tu peux aussi remplacer malloc par HeapAlloc() vu que est code specifique win32 autant aller au + direct. HANDLE hheap; Enregistre 1 seule fois au debut du prog: hheap = GetProcessHeap(); et servira pour les appels successifs de : Commande = (char *) HeapAlloc(hheap, 0, size); if(Commande == NULL) pas de memoire dispo; ton bolot ici, et en sortie de func: HeapFree(hheap, 0, Commande); BruNews, ciao...
------------------------------- Réponse au message : -------------------------------
> Resalut Vieux Lion.. > j'ai enfin un résultat mais ça plante toujours voila mon code: > arrivé au 228éme fichiers traité il me dit: > L'instruction 0x004076a7 emploie l'adresse 0x02937b0 qui ne peut etre written....je suis desespéré tout mes espoirs étaient dans CreateProcess()................ > voila mon code: > > void Tiffkit(char *Source_Tif, char *Dest_Tif, int X, int Y, int gras, char *chaine) > { > char *Commande; > STARTUPINFO si; > PROCESS_INFORMATION pi; > > Commande = (char *) malloc(TAILLE_COMMANDE); > sprintf(Commande, "%s source=%s, dest=%s, format=512, size=16, x=%d, y=%d, bold=%d,save=0, text=%s", > CHEMIN_TIFFKIT, Source_Tif, Dest_Tif, X, Y, gras, chaine); > ZeroMemory( &si, sizeof(si) ); > si.cb = sizeof(si); > ZeroMemory( &pi, sizeof(pi) ); > > // Start the child process. > if( !CreateProcess( NULL, Commande, NULL, NULL,FALSE,0,NULL,NULL,&si,&pi)) > { > printf("Error impossible de creer le process"); > exit(1); > } > > // Wait until child process exits. > WaitForSingleObject( pi.hProcess, INFINITE ); > > // Close process and thread handles. > CloseHandle( pi.hProcess ); > CloseHandle( pi.hThread ); > } > > > Merci de m'éclairer une derniére fois et aprés je t'embête plus merci.
|
|
Cette discussion est classée dans : fonction, fichiers, bug, probléme, winexec
Répondre à ce message
Sujets en rapport avec ce message
Taille de fichiers [ par Screderman ]
Hello !Je cherche un moyen ( une fonction ) permettant de trouver la taille d'un fichier afin que je puisse le lire en entier avec ma fonction de lect
copier des fichiers [ par lamoueste ]
bjr a tous alors simplement j'aurai aime savoir comment copier des fichiers en C++ pour le moment j'utilise la fonction copyfile() mais cela ne marche
Ouvrir tous les fichiers d'un dossier 1 par1 [ par Buzu ]
Je cherche à développer une fonction qui ouvre tous les fichiers d'un dossier spécifié 1 par 1.Existe-t-il une fonction qui renvoie le nombre de fichi
Fonction pour Copier des Fichiers ??? [ par lol55 ]
Bonjour, je cherche une fonction en C/C++ pour Copier des fichiers. J'ai déjà trouvé la fonction CopyFile(); mais lorsque je compile (avec Visual C++)
reception fichiers par rs232 [ par sergio18 ]
Bonjour,Mon Problème: je veux recevoir un fichier Programme d'une commande numérique via RS232.Mais je ne connais pas le nombre de caractere que compo
Problème avec l'ouverture totale de certains fichiers! [ par ndubien ]
Bonjour, J'ai un problème avec l'une de mes fonctions, cette derniere est censée ouvrir tous les fichiers du début à la fin mais lorsqu'elle renc
probléme de lecture d une trame [ par dgac ]
Bonjour,j'ai crée un programme pouvant effectuer l nevoie d une trame et la reception . mais dans ma fonction lecture je reste bloqué a mon instructio
Problème avec la copie Shell... [ par shinnokamui ]
Bonjour,J'ai un problème avec mon programme C++, qui effectue une copie de fichiers avec l'API win32 en utilisant le Shell (fonction SHFileOperation).
suppression des fichiers [ par boualiasma ]
Bonjour, Je voulais supprimer totalement à partir de mon programme C sous windows tous les fichiers textes temporaires dans mon répertoire de travail
suppression de fichier en fonction de la date de création [ par koma777 ]
Bonjour à tous, Je cherche actuellement un programme automatisant la suppression de fichier en fonction d'une date antérieur. En effet, j'ai une camer
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|