Se connecter avec
S'enregistrer | Connectez-vous

desactiver Standard I/O en C

Dernière réponse : dans Programmation

Bonjour à tous,

Je développe des programmes, qui utilisent des DLL contenant des affichages sur fenetre standard I/O (des "printf" quoi :D  ).

Certains logiciels doivent permettre d'afficher ces messages, d'autres non (selon les droits de l'utilisateur en gros)
Vu que ces DLL doivent etre communes aux différentes versions, impossible de supprimer les printf et de faire des DLL personnalisées selon l'utilisateur


est il possible d'activer / désactiver le standard I/O dans le module principal du logiciel?
au pire, est il possible de rediriger le flux vers un fichier par exemple plutot que de l'afficher à l'ecran (fichier qui ne sera pas accessible a l'utilisateur lambda, et qui sera effacé)

Merci de vos réponses

Autres pages sur : desactiver standard

Lassé par la pub ? Créez un compte

La doc msdn donne ça :
  1. // Compile options needed: none
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. void main(void)
  7. {
  8. FILE *stream ;
  9. if((stream = freopen("file.txt", "w", stdout)) == NULL)
  10. exit(-1);
  11.  
  12. printf("this is stdout output\n");
  13.  
  14. stream = freopen("CON", "w", stdout);
  15.  
  16. printf("And now back to the console once again\n");
  17. }

Les dll vont s'écécuter dans le contexte du processus principal, donc, une fois la sortie standard redéfinie, tous les printf se feront dans le fichier.
Tu pourrais même essayer vers un fichier null si tu ne veux pas écrire dans un fichier physique (a tester).

Ouf... heureusement que ça ne marche pas alors :D 
serieusement ça doit pas etre loin, c'est juste que pour lui remettre la possibilité d'ecrire sur le standard IO (en gros la ligne "stream = freopen("CON", "w", stdout);") qui ne fonctionne pas...
mais a la rigueur, c'est pas grave ça puisque je ne serais jamais dans le cas ou il faut la remettre ;) 

Donc tu as bien mérité ta récompense :D 
http://www.diamant-gems.com/french/images/ft.gif

http://www.uvm.edu/~hag/presentations/roses/roses-long-...

http://www.vacance-club.com/images/photo-top-middle.jpg
Lassé par la pub ? Créez un compte
Tom's guide dans le monde